如何在java中修剪运行时变量的空间



我有以下一段代码

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

最新更新