我如何才能将宽阔空间变成单个空间? Java字符串

时间:2019-09-04 20:31:54

标签: java string substring

例如,我输入“我正在去\ s \ s \ s去商场”,宽阔的空间必须变成单个空间。

    String f = line.substring(0,1).toUpperCase() + line.substring(1).toLowerCase();


    String[] split = f.split(" ");

    for(int i=0;i<split.length;i++){

        System.out.print (split[i] + " ");
    }

2 个答案:

答案 0 :(得分:0)

创建一个String toTitleCase(String)方法,该方法可以正确完成一个单词。它应处理特殊情况,例如将tO变为to,并保持the小写,保持FBI之类的所有大写字母不变,并处理O'Neal之类的名称,等等。

您可以考虑寻找现有的实现。

然后按照您的方式做:拆分字符串,转换并重新加入:

String result = Arrays.stream(line.split(" "))
                .map(this::toTitleCase)
                .collect(Collectors.joining(" "));

答案 1 :(得分:0)

您可以同时使用 String对象方法 regexp
示例:

String str1 = "i Am Going \t \t to go tO the mall";

//note : trim() eliminates only spaces at the beginning and end of the String
//removes extra spaces
String str2 = str1.trim().replaceAll(" +", " "); //way(1)
String str2 = str1.trim().replaceAll("\\s{2,}", " "); //way(2)

str2 = str1.replaceAll("\t", " "); //convert tab to space
str2 = str1.toLowerCase(); //convert all chars to lower case
str2 = str1.substring(0, 1).toUpperCase() + str1.substring(1); //convert first character to uppercase

您还可以使用org.apache.commons:commons-lang库简单地大写字符串:

StringUtils.capitalize(yourString);