[英]I need to remove the spaces from a string input from console
所以我有一个这种格式的控制台输入:
“Adrian, 18, 180, 80” 我用了这个,但不起作用
BufferedReader reader = new BufferedReader(newInputStreamReader(System.in));
line = reader.readLine();
System.out.println("You added this user: " + line);
String[] b=line.split(",");
for(String name : b){
name.replace(" ","");
System.out.println(name);
}
但是,output 如下:
Adi
16
180
80
我尝试了不同的方法,但似乎没有人适合我。 也许可能是因为我在 for 循环中调用它
请注意replace
如何返回a string derived from this string
(来自javadoc的引用)。 那是因为它不会改变初始字符串的值。 在 Java 中,字符串是不可变的。
您必须直接打印replace
结果或将其分配给变量。
for(String name : b){
name = name.replace(" ","");
System.out.println(name);
}
或更短:
for(String name : b){
System.out.println(name.replace(" ",""));
}
如果要在一行中显示整个结果,请使用print
而不是println
。
记住String
是不可变的,任何修改都应该分配给一个新的String
。
String trimmed = name.replace(" ","");
System.out.println(trimmed);
String
是不可变的,因此当您调用replace
时,您实际上并没有从name
中删除空格,而只是创建了一个不引用它的新字符串。 您可以简单地将replace
返回分配给name
:
for (String name : b) {
name = name.replace(" ","");
System.out.print(name);
}
此外,如果您想在一行中使用 output,您应该使用System.out.print
而不是System.out.println
(如上)。 后者在输入的末尾添加一个换行符。
查看 String.replace() 方法的文档,我们发现以下内容:“返回一个新字符串,该字符串是用 newChar 替换此字符串中所有出现的 oldChar 所产生的。”
这意味着您必须保存 name.replace(" ","") 的结果,因为该方法不会更改您的旧字符串。 尝试这个:
name = name.replace(" ","");
尝试使用 System.out.print() 而不是 System.out.println()。
System.out.println() 将把 cursor 放在下一行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.