java中的字符串如何以多个空格为分割
因为设计的是字典程序,字典的txt格式为:ID单词音标解释1aei,2art.一(个,件,...)....6ablanketof...一片或一页的这个是给定的词典的格式,...
因为设计的是字典程序,字典的txt格式为:
ID 单词 音标 解释
1 a ei,2 art.一(个,件,...)
....
6 a blanket of... 一片或一页的
这个是给定的词典的格式,即单个单词给出音标,词组不给出,现在想要把这个字符串分割成三部分:
ID;单词或词组;音标和解释;
如第一个分隔成:
1
a
ei,2 art.一(个,件,...)
通过观察认为用他们之间两个以上的空格作为分隔符最为方便,即一个空格不分割,两个以上的空格才分隔,分隔成三份。
查了用split的方法,一直只能找到一个空格分隔的。
希望牛人指点怎么分隔。如果有其他方法分隔成以上形式,也请赐教。 展开
ID 单词 音标 解释
1 a ei,2 art.一(个,件,...)
....
6 a blanket of... 一片或一页的
这个是给定的词典的格式,即单个单词给出音标,词组不给出,现在想要把这个字符串分割成三部分:
ID;单词或词组;音标和解释;
如第一个分隔成:
1
a
ei,2 art.一(个,件,...)
通过观察认为用他们之间两个以上的空格作为分隔符最为方便,即一个空格不分割,两个以上的空格才分隔,分隔成三份。
查了用split的方法,一直只能找到一个空格分隔的。
希望牛人指点怎么分隔。如果有其他方法分隔成以上形式,也请赐教。 展开
4个回答
展开全部
下面提供三种分割的方法
核心是 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+");
核心是 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+");
展开全部
用正则表达式就好
^\s{2,}$ 即代表两个及以上的空格
^\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
展开全部
用正则不可以吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询