我想將一個字符串轉換爲數字數組,因此我定義了一個哈希映射來完成這項工作。這裏是我的代碼:使用HashMap時出現錯誤
import java.util.*;
public class DES {
static HashMap<String, Integer> numMap = new HashMap<String, Integer>();
private static void init(){
numMap.put("a", 0);
numMap.put("b", 1);
numMap.put("c", 2);
numMap.put("d", 3);
numMap.put("e", 4);
numMap.put("f", 5);
numMap.put("g", 6);
numMap.put("h", 7);
numMap.put("i", 8);
numMap.put("j", 9);
numMap.put("k", 10);
numMap.put("l", 11);
numMap.put("m", 12);
numMap.put("n", 13);
numMap.put("o", 14);
numMap.put("p", 15);
numMap.put("q", 16);
numMap.put("r", 17);
numMap.put("s", 18);
numMap.put("t", 29);
numMap.put("u", 20);
numMap.put("v", 21);
numMap.put("w", 22);
numMap.put("x", 23);
numMap.put("y", 24);
numMap.put("z", 25);
numMap.put(" ", 26);
numMap.put(".", 27);
numMap.put(",", 28);
numMap.put("?", 29);
numMap.put("(", 30);
numMap.put(")", 31);
}
public static void main(String[] args) {
init();
String plaintext = "how do you like computer science";
String[] splittext=plaintext.split("");
int[] numtext=new int[splittext.length];
for(int i=0;i<splittext.length;i++)
{
numtext[i]=numMap.get(splittext[i]);
System.out.println(numtext[i]);
}
}
}
我運行時,有一個「空指針異常」,但我猜散列圖是確定的,因爲我想是這樣
numtext[i]=numMap.get("z");
,它工作正常。所以也許我的splittext數組存在一些問題?
也許你應該指出'NullPointerException'發生的位置。我的猜測是,你不能分裂在一個空字符串... – 2013-03-17 04:37:24
我想分裂在一個空字符串會分裂'明文'字母的字母,所以它沒有。我對數組'splittext'進行了迭代,是的,每個元素都是單個字母。當然,異常發生在「numtext [i] = numMap.get(splittext [i]);」 – phil 2013-03-17 04:40:08