如何将宽空间转换为单个空间?Java字符串
例如,我输入“我要去购物中心”,宽空间(\s)必须变成单个空间如何将宽空间转换为单个空间?Java字符串,java,string,substring,Java,String,Substring,例如,我输入“我要去购物中心”,宽空间(\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] + " "); } Strin
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] + " ");
}
String f=line.substring(0,1).toUpperCase()+line.substring(1).toLowerCase();
String[]split=f.split(“”);
对于(int i=0;i创建一个String-toTitleCase(String)
方法,对一个单词做正确的处理。它应该处理特殊情况,如将转换为到到,保持小写,保持所有大写,如FBI
完整,以及处理O'Neal
等名称
您可以考虑寻找现有的实现。
然后按您所做的操作:拆分字符串、转换、连接回:
String结果=Arrays.stream(line.split(“”))
.map(this::toTitleCase)
.collect(收集器。连接(“”);
您可以同时使用字符串对象方法和regexp。
例如:
您还可以使用org.apache.commons:commons lang
库来大写字符串,只需:
StringUtils.capitalize(yourString);
谢谢你的回答,先生。我现在的问题是,如果我要输入大空格,句子必须改成单空格。我该怎么做?也许可以添加一个筛选器,以避免包含长度为0的修剪字符串。@AndrewS我尝试过。trim()到,但不起作用。在映射之前,将筛选器添加到流中,例如:。)).filter(s->!s.trim().isEmpty()).map(…
你说的“宽空间(\t)必须变成单个空间”是什么意思?你能提供预期的结果吗?它与你已经得到的有什么不同?现在听起来你想用单个空间替换每个\t
,可以通过String replaced=yourString.replace来完成(“\t”,”;
。你说的“宽空格”是指制表符吗?@khelwood只是指宽空格。我的意思是“我要去购物中心”,那么你的问题为什么多次说\t
?比如String singleSpaceOnly=yourString.replaceAll(\\s+”);
?(添加trim()
如果还要删除前导空格和尾随空格).Strings是不可变的。您可能在正确的轨道上,但请先运行您的代码,然后再发布它,以查看它是否实际工作。谢谢先生。上面显示的代码正在工作,但删除多余的空格是我无法做的事。我尝试了您的算法删除,但输出仍然相同。@Pshemo我知道字符串是不可变的!这只是一个提示!@2se4n您可以试试我编辑过的答案。@GhasemSadghi谢谢您的想法,先生!谢谢!
StringUtils.capitalize(yourString);