java中的字符串如何以多个空格为分割

因为设计的是字典程序,字典的txt格式为:ID单词音标解释1aei,2art.一(个,件,...)....6ablanketof...一片或一页的这个是给定的词典的格式,... 因为设计的是字典程序,字典的txt格式为:
ID 单词 音标 解释
1 a ei,2 art.一(个,件,...)
....
6 a blanket of... 一片或一页的

这个是给定的词典的格式,即单个单词给出音标,词组不给出,现在想要把这个字符串分割成三部分:
ID;单词或词组;音标和解释;
如第一个分隔成:
1
a
ei,2 art.一(个,件,...)

通过观察认为用他们之间两个以上的空格作为分隔符最为方便,即一个空格不分割,两个以上的空格才分隔,分隔成三份。
查了用split的方法,一直只能找到一个空格分隔的。
希望牛人指点怎么分隔。如果有其他方法分隔成以上形式,也请赐教。
展开
 我来答
汐日南莘
推荐于2017-09-14 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:45%
帮助的人:7525万
展开全部
下面提供三种分割的方法
核心是 split()函数来分割函数

1. String str = "123 456 789 111";
String [] strArray = str.split("s");
这里的s代表的是一个空格 因为正则表达式\s匹配任意的空白
2.String str = "123 456 789 111";
String [] strArray = str.split(" ");
3.多个空格,不管有多少空格就分隔
String str = "123 456 789 111";
String [] strArray = str.split("s+");
lh502101107
2012-10-06 · TA获得超过840个赞
知道小有建树答主
回答量:334
采纳率:100%
帮助的人:198万
展开全部
用正则表达式就好
^\s{2,}$ 即代表两个及以上的空格
更多追问追答
追问
出现错误java.lang.NumberFormatException:
贴上代码:
String line=new String(input1.nextLine());
//String line=new String("6 a blanket of... 一片或一页的");
String []tokens=line.split("\\s{2,}",3);
for(int i=0;i<tokens.length;i++)
{
System.out.println(tokens[i]);
}
用注释的代码测试ok,不过在文件中读出来后似乎不能正确的识别空格。直接从文件中copy出来贴在分号中也不行,请问如何解决。
追答
我这不是公司的电脑没有eclipse,你查查正则表达式的正确用法,不是这样用的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
专治八阿哥的孟老师
2012-10-06 · 爱生活,爱编程,专心于学习技术和撸猫
专治八阿哥的孟老师
采纳数:494 获赞数:3914

向TA提问 私信TA
展开全部
正则表达式解决匹配问题很精确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-10-06
展开全部
用正则不可以吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式