我有以下一段代码
import java.io.*;
import java.util.*;
class MainDriver{
public static void main(String aa[]){
Scanner reader = new Scanner (System.in);
String name;
System.out.println("enter your name");
name = reader.nextLine();
name.trim();
System.out.println (name);
}
}
和我想知道的输出,如果我给空白输入
输入 bayant singh
bayant singh
那么为什么name.trim;
不在这里工作?因为我猜输出是
bayantsingh //no spaces
trim删除字符串两端的空白符。要删除所有空格,请输入:
name = name.replace(" ","");
对于任何类型的空白,它已经指出我可以使用正则表达式:
name = name.replaceAll("\s","");
你的第一个问题是字符串是不可变的,这意味着它的方法不能编辑它的状态(存储的字符),而是创建新的更新的字符串实例。所以
name.trim();
创建并返回新的裁剪字符串,您将忽略该字符串,因为您没有将此方法的结果存储在任何地方。如果你想让name
引用保存修剪过的字符串,你应该使用
name = name.trim();
你的第二个问题是,如果你想改变" bayant singh"
到"bayantsingh"
你不应该使用trim
方法,因为只删除空格只在开始和结束你的字符串。
如果你想删除所有空格,你应该使用
name = name.replace(" ","");
如果要替换所有空格,请使用。replaceall ()
name = name.replace(" ",""); // replace first space
name = name.replaceAll(" ",""); // replace all spaces in the string