java中string的split功能,分割空格失败
packagecom.xxq.mytest;importjava.util.regex.Pattern;publicclassStringSplitTest{public...
package com.xxq.mytest;import java.util.regex.Pattern;public class StringSplitTest { public static void main(String[] args) { String str1=new String("尹超 职务:操作员.jpg"); String[] strb1=str1.split("\\s"); for (String string : strb1) { System.out.println(string); } System.out.println("所取得的名字是:"+strb1[0]); }}预期得到结果:所取得的名字是:尹超,但是用split没有分开,为什么呢?
中间的空白字符可能不是空格,自己删掉输入空格可以分割,不知道这种空白字符怎么分割,请高人指点! 展开
中间的空白字符可能不是空格,自己删掉输入空格可以分割,不知道这种空白字符怎么分割,请高人指点! 展开
展开全部
public class Test {
public static void main(String[] args) {
String string = "1 2 3 4 5";
String[] arr = string.split(" ");
for (String s: arr) {
System.out.println(s);
}
}
}
我用上面的代码试了下,可以。望采纳
追问
这种是我最开始采取的一种方式,确实分割不了,不信你可以粘贴问题中的new String("尹超 职务:操作员.jpg");试试
追答
public class Test {
public static void main(String[] args) {
String str1 = new String("尹超 职务:操作员.jpg");
str1 = str1.replace((char) 12288, ' ');
String[] strb1 = str1.split(" ");
for (String string : strb1) {
System.out.println(string);
}
System.out.println("所取得的名字是:" + strb1[0]);
}
}
在split之前加一行处理:str1 = str1.replace((char) 12288, ' ');
望采纳。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这里有可能是中文全角的空格,属于特殊字符,\\s 是匹配不了的。 对应的ascii 值 为160.
验证方法:
int a = 160;
char c = (char)a;
String s = String.valueOf(c);
String[] strb1=str1.split(s);
如果能拆分,就确定是这个问题。
当然有个解决方法是 替换: strb11 = strb1.replaceAll(String.valueOf((char)160), " ");
然后就可以按照你之前的方式处理了
验证方法:
int a = 160;
char c = (char)a;
String s = String.valueOf(c);
String[] strb1=str1.split(s);
如果能拆分,就确定是这个问题。
当然有个解决方法是 替换: strb11 = strb1.replaceAll(String.valueOf((char)160), " ");
然后就可以按照你之前的方式处理了
更多追问追答
追问
我把中间的空白部分删除了,换成了中文全角输入法,输入空格,确实无法分割,如果真的是这种情况,可以分割吗?应该怎么分割呢?
追答
上面补充回复了的,拆分前做一次替换就好了。
strb1 = strb1.replaceAll(String.valueOf((char)160), " ");
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询