gpt4 book ai didi

Java 正则表达式不适用于第二行中的输入字符串

转载 作者:行者123 更新时间:2023-11-30 07:14:27 25 4
gpt4 key购买 nike

我有下面的代码,当我从控制台传递这些参数时,它可以完美地工作。

测试用例

{"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”。

请帮我解决这个问题。

最佳答案

它不起作用,因为您只阅读第一行。

在这里,您需要读取字符串中的所有行。然后使用正则表达式。

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");
}

关于Java 正则表达式不适用于第二行中的输入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38685657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com