我正在解決TSP問題。我已經生成了String
「123456」的所有排列,但是,我需要將其轉換爲Integer
的ArrayList
,像這樣[1,2,3,4,5,6] ... [6,5,4, 3,2,1]。然後我將它存儲到ArrayLists
的ArrayList
。一旦到達那裏,我就可以比較所有需要旅行的城市。無法從字符串轉換爲Int
當我運行我的代碼時,我有一種方法來生成排列,然後將該排列更改爲Integer
的ArrayList
。當我轉換它們時,我得到例外java.lang.NumberFormatException: For input string: ""
。我不知道有什麼其他的方式可以得到String
到Integer
這是我的代碼。
public static String permute(String begin, String string){
if(string.length() == 0){
stringToIntArray(begin+string);
return begin + string + " ";
}
else{
String result = "";
for(int i = 0; i < string.length(); ++i){
String newString = string.substring(0, i) + string.substring(i+1, string.length());;
result += permute(begin + string.charAt(i), newString);
}
stringToIntArray(result);
return result;
}
}
public static void stringToIntArray(String s){
ArrayList<Integer> perm = new ArrayList<Integer>();
String [] change = s.split("");
for(int i = 0; i < 7; ++i){
int integer = Integer.parseInt(change[i]);
System.out.println(integer);
}
}
public static void main(String[] args) {
permute("", "123456");
}
你不需要分割任何東西。只需將字符串的每個字符轉換爲一個int並將其放入數組中即可。 – 2013-03-22 18:43:13