我有一个变量,其中包含一些影响创建的weka模型的参数。我想自动更改参数值。我有以下内容:
String c [] ={"1.0", "10.0", "20.0", "30.0", "40.0", "50.0", "60.0","70.0", "80.0",
"90.0","100.0", "200.0", "300.0", "400.0","500.0", "600.0", "700.0", "800.0", "1000.0",
"2000.0"};
System.out.println(c[1]);
String opt = ("-C "+c[0] +"-L 0.001 -P 1.0E-12 -N 0 -V -1 -W 1 -K
weka.classifiers.functions.supportVector.PolyKernel -C 250007 -E 1.0 ");
String [] options = opt.split(" ");
obj.train(new File(obj.str.get(2)), options);
我想在循环内自动更改C参数。但是,当我写下面的内容时:
String opt = ("-C "+c[1] +"-L 0.001 -P 1.0E-12 -N 0 -V -1 -W 1 -K weka.classifiers.functions.supportVector.PolyKernel -C 250007 -E 1.0 ");
我收到java.lang.NumberFormatException
:输入字符串。我可能需要做些什么才能正常工作?该错误位于上述代码的最后一行。
答案 0 :(得分:3)
我试一试:
String c [] ={"1.0", "10.0", "20.0", "30.0", "40.0", "50.0", "60.0","70.0", "80.0", "90.0","100.0", "200.0", "300.0", "400.0","500.0", "600.0", "700.0", "800.0", "1000.0", "2000.0"};
for (i = 0; i < c.length; i++){
String opt = String.format("-C %S 1.0 -L 0.001 -P 1.0E-12 -N 0 -V -1 -W 1 -K weka.classifiers.functions.supportVector.PolyKernel -C 250007 -E 1.0 ",c[i]);
}
我使用了String.format(“”,...)函数并添加了%S作为占位符,其中c [i]的值将被放入。