我有一个字符串变量。字符串的示例如下:
abc
12345 cde123
hyz
8755 3356
我想通过吐出空白来分配一个数组字符串。我想只拿它的前4个值。
stringArray[0] = abc;
stringArray[1] = 12345;
stringArray[2] = cde123;
stringArray[3] = hyz;
8755 3356不需要在此数组字符串中赋值。
但是,abc
和12345
分隔换行符而不是空格。所以我尝试用我的函数替换换行符变为空格,如下所示:
Util.replaceStr(stringX, "\n", " ");
要将字符串溢出到数组字符串中,我会检测
的空白索引int index= sMessage.indexOf(" ");
并将其置于循环
stringArray[i] = stringX.substring(0,index);
stringX=stringX.substring(index,stringX.length()-index);
index =stringX.indexOf(" ");
并将前4个值分配给它。然而,在我将换行符替换为空格后,将会有双空格,前四个数组将会是这样的
stringArray[0] = abc;
stringArray[1] = ;
stringArray[2] = 12345;
stringArray[3] = cde123;
如何通过跳过空格值来分配数组字符串? NETBEAN中没有分拆功能。我知道java了。 =)
答案 0 :(得分:4)
编辑:此示例应与Java 1.1的目标一起使用
String text = "String text2 = text.replaceAll(\"[^\\p{Alpha} ]\", \"\");";
StringBuffer sb = new StringBuffer();
for(int i=0;i<text.length();i++) {
char ch = text.charAt(i);
if (Character.isLetter(ch) || Character.isWhitespace(ch))
sb.append(ch);
}
String text2 = sb.toString();
System.out.println(text2);
打印
String text textreplaceAllpAlpha
如果您想按空格分割,可以使用\s
String text =
String[] words = text.split("\\s");
您似乎有多个空格(hyz
之后有一个空格),您可以使用+
表示一个或多个空格。
String text = "abc\n" +
"12345 cde123\n" +
"hyz \n" +
"8755 3356\n";
String[] words = text.split("\\s+");
System.out.println(Arrays.toString(words));
打印
[abc, 12345, cde123, hyz, 8755, 3356]
答案 1 :(得分:1)
在java中有一个用于拆分的库函数,所以使用该函数进行拆分。您只需用空格替换新行,并使用以下函数。
String[] stringArray = stringX.split("\\s");
答案 2 :(得分:1)
使用替换
将所有类型的空格转换为\n
后:您可以使用\n\n
执行替换\n
,直到字符串不变。这样你可以确保没有双重空间。
使用正则表达式
您还可以使用一些正则表达式模式来查找单词。类似的东西:
\S+
应该足够了。你得到了所有非空白字符。如果您在字符串中找到前四个正则表达式,您将拥有所需的内容。
答案 3 :(得分:0)
只需拆分任何一组空格(在正则表达式中使用“+”)。你不会以这种方式结束由空格组成的组。
String[] words = text.split("\\s+");
答案 4 :(得分:0)
使用以下代码:
String[] array = yourString.split("\\s");/* s is uncapitalized.*/
\s
表示:空格字符,[\ t \ n \ x0b \ r \ n]的缩写
您可以查看http://www.vogella.de/articles/JavaRegularExpressions/article.html了解详情。
答案 5 :(得分:0)
使用Java 8 Stream ,它成为一个衬板。下面的代码基于点.
分割整个字符串,然后删除所有前面的零0
。
// "10.013.00400.0.1.001.100" ---> [10, 13, 400, 0, 1, 1, 100]
String in = "10.013.00400.0.1.001.100";
List<String> list = Arrays.stream(in.split("\\."))
.map(s -> s.replaceAll("^0+(?!$)", ""))
.collect(Collectors.toList());
System.out.println(list);
打印
[10, 13, 400, 0, 1, 1, 100]