当我从控制台传递这些参数时,我有以下代码可以正常工作。
试验情况下
{"012.99 008.73","099.99 050.00","123.45 101.07"}
源代码
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Pass the parameters");
String line=br.readLine();
String str=line.replaceAll("[^0-9 A-Z a-z /, .]","");
String[] nos=str.split(",");
for(String s:nos){
System.out.print(s+"\t");
}
但是当我从控制台传递以下参数时,上面的代码不起作用。
{"612.72 941.34","576.46 182.66","787.41 524.70","637.96 333.23","345.01 219.69",
"567.22 104.77","673.02 885.77"}
字符串数组nos在第二行中缺少字符串“567.22 104.77”,“673.02 885.77”。
请帮我解决这个问题。
答案 0 :(得分:1)
由于您只阅读第一行,因此无效。
在这里,您需要读取字符串中的所有行。然后在上面使用正则表达式。
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Pass the parameters");
String line;
StringBuffer sb = new StringBuffer("");
while ((line = br.readLine()) != null) {
sb.append(line);
}
line = sb.toString();
String str=line.replaceAll("[^0-9 A-Z a-z /, .]","");
String[] nos=str.split(",");
for(String s:nos){
System.out.print(s+"\t");
}