我正在研究解决 TSP 问题的方法。我已经生成了“123456”的所有排列String
,但是,我需要将其转换为ArrayList
这样的Integer
[1,2,3,4,5,6]...[6,5,4,3,2 ,1]。然后我将它存储到一个ArrayList
of 中ArrayLists
。到达那里后,我将能够比较所有需要前往的城市。
当我运行我的代码时,我有一个生成排列的方法,然后是一个将该排列更改为ArrayList
of 的方法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");
}