2011-10-09 47 views
1

我翻譯一個JavaScript函數來Java和我有低於這個text變量,煩惱如何聲明和在Java中使用它:結構與字符數組的索引和INT的價值

的Javascript:

var text={}; // Index will be several arrays, and value an integer 
var word; // Will contain several chars, like a string 
var myChar; // Will contain only one char 
var value; // Will contain one integer 
[...] 
if(text[word+myChar]!=null) 
{ // In this comparison, word is "hell", myChar is "o" and value is 1234 
    text[word+myChar]=value; 
} 

感謝您的幫助

回答

2

這將是非常有益的,如果我們能看到你有什麼到目前爲止已經試過(用Java)。這可以幫助我們更好地理解你想要完成的內容。

下面是我所知我的祕訣:

  1. 看來你要創建一個字符串的映射 - >整數(或類似的東西)。這將清楚地表示爲Java中的HashMap<K,V>。這將會說「將V型值的實例映射到類型K的鍵」,其中K和V可由您決定。有了這個,您可以創建一個HashMap<String, Integer>的實例,您可以在哈希映射中的特定字符串鍵中獲取/設置整數值。
  2. 你可以在Java中以類似的方式使用字符串連接(我假設這是在JS中使用word + myChar時發生的操作)。您將從此形成一個String對象。
  3. 對於HashMap,您可能想要使用containsKey(K key)get(K key),具體取決於您是要查看密鑰是否存在於地圖中,或者該地圖中該密鑰的值是否爲非null。這將取決於問題的背景以及你想完成什麼。

下面是什麼它可能看起來像一個快速的(未測試)例如:

import java.util.*; 

public class WordIntMap { 
    public static void main(String[] args) { 
     HashMap<String, Integer> text = new HashMap<String, Integer>(); 
     String word = "hell"; 
     char myChar = 'o'; 
     int value = 1234; 

     String key = word + myChar; 

     if (text.get(key) != null) { 
      text.put(key, value); 
     } 
    } 
} 
2
Map<String, Integer> text = new HashMap<String, Integer>(); 

... 

if (text.containsKey(word+myChar)) { 
    text.put(word+myChar, value); 
}