Java:当单词之间有可变数量的空格时,按空格分割字符串?
我有以下内容:
String string = "1-50 of 500+"; String[] stringArray = string.split(" ");
打印出这个数组中的所有元素给出了以下内容:
Element 1: 1-50 Element 2: of 500+
如何通过要求单词之间至少有一个空格来分割元素?
换句话说,我希望我的元素是:
Element 1: 1-50 Element 2: of Element 3: 500+
使用\\s+
分隔空格即使它们更多。
String string = "1-50 of 500+"; String[] stringArray = string.split("\\s+"); for (String str : stringArray) { System.out.println(str); }
完整示例: http : //ideone.com/CFVr6N
编辑:
如果您还想在选项卡上拆分,请将正则表达式更改为\\s+|\\t+
,它也会检测空格和制表符。
您可以使用正则表达式进行拆分
string.split("\\s+");
用番石榴Splitter
:
package com.stackoverflow.so19019560; import com.google.common.base.CharMatcher; import com.google.common.base.Splitter; import com.google.common.collect.Lists; import java.util.List; public class Foo { private static final Splitter SPLITTER = Splitter.on(CharMatcher.WHITESPACE).omitEmptyStrings(); public static void main(final String[] args) { final String string = "1-50 of \t\n500+"; final List elements = Lists.newArrayList(SPLITTER.split(string)); // output for (int i = 0; i < elements.size(); i++) { System.out.println(String.format("Element %d: %s", i + 1, elements.get(i))); } } }
输出:
Element 1: 1-50 Element 2: of Element 3: 500+
用它来溢出字符串。
String[] stringArray = string.split("\\s+");
你的程序是正确的,但你在1-50
之后放了两个空格。 所以它给你输出。 删除一个空格,你就完成了。 无需更改代码。 但是如果有两个空格那么你应该使用string.split("\\s+")
import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) throws java.lang.Exception { String string = "1-50 of 500+"; String[] stringArray = string.split("\\s+"); for (String str : stringArray) { System.out.println(str); } } }
String[] stringArray = string.split(" +");
代替
String[] stringArray = string.split(" ");
要解决空间问题,在拆分后,可以使用.trim()
删除空白区域。
这样的事情应该有效。
for(int x=0; x
- 在Spring Integration中使用Transformer轮询HTTP服务(出站网关)和进程
- 自JDK 7以来,Java JDK 8 IndexedPropertyDescriptor已使用List对象进行了更改
- 我们可以在Java Swing中使用GTK + 2.0按钮样式吗?
- Spring Data Pagination在JSONView中没有返回任何结果
- 如何在JSTL中正确拆分字符串?
- Eclipse在单独的窗口中打开控制台应用
- java.io.IOException:服务器返回HTTP响应代码:503为URL:http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
- 确保模块仅在Guice中加载一次
- 合并@ManyToOne端的托管实体