【发布时间】:2013-03-22 18:39:32
【问题描述】:
我正在研究 TSP 问题的解决方案。我已经生成了String“123456”的所有排列,但是,我需要将其转换为Integer 的ArrayList,如下所示[1,2,3,4,5,6] ... [ 6,5,4,3,2,1]。然后我将它存储到ArrayLists 的ArrayList 中。到达那里后,我将能够比较所有需要前往的城市。
当我运行我的代码时,我有一个生成排列的方法,然后有一个方法将该排列更改为 ArrayList 或 Integer。当我转换它们时,我得到了异常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");
}
【问题讨论】:
-
你不需要拆分任何东西。只需将字符串的每个 char 转换为 int 并放入数组中即可。
标签: java arraylist string-formatting permutation parseint