判断单词个数题:输入一行字符,统计共有几个单词(即kkk kkk算两个单词)
单词间就一个空格且开头没空格的话
String[] result = "this is a test".split("\\s");
for (int x=0; x<result.length; x++)
System.out.println(result[x]);
System.out.println(result.length);
就可判断。
我想问的是
如果连续几个空格呢?
如果开头就有空格呢?
又应该如何处理?
单词间就一个空格且开头没空格的话
String[] result = "this is a test".split("\\s");
for (int x=0; x<result.length; x++)
System.out.println(result[x]);
System.out.println(result.length);
就可判断。
我想问的是
如果连续几个空格呢?
如果开头就有空格呢?
又应该如何处理?
[超级大笨狼]提供三万单词库备份下载,MS-SQL 2000格式,下载请“自觉”捐赠可用分给我。
如果空格不规则,则在while中加个判断
String s[]=str.trim() .split("[ ,\\,,\\.]+");
for(int i=0;i<s.length;i++){
System.out.println(i+":"+s[i]);
}用正则表达式来split,之前trim一下就可以了。
正则表达式里面连接符的写法我就不查了,你自己查吧不过建议不要用split,这样出来的是数组,如果文件太大,对内存压力大。直接用indexOf一个一个的找就可以了。你搜索一下正则表达式,里面有单词的表示方法。
至于开头空格嘛 就更简单了先判断下先!
String result=" this is a test";
for(int i=0;i<result.length();i++){
if(result.charAt(i)!=' '){
result=result.substring(i);
break;
}
}
String[] result1 = result.split("\\s+");
for (int x=0; x<result1.length; x++)
System.out.println(result1[x]);
System.out.println(result1.length);
}
+ "someone on a \"scale\" based on the way they look\nmakes them LAUGH."; private static String SPLIT = "[||]"; /**
* @param args
*/
public static void main(String[] args) {
String replaced = article.trim().replaceAll("\\s+", SPLIT);
int position = 0, counter = 0;
while (replaced.indexOf(SPLIT, position) != -1) {
counter++;
position = replaced.indexOf(SPLIT, position) + SPLIT.length();
}
System.out.println("一共有单词 " + (counter + 1) + " 个");
}}
估计起太晚睡糊涂了我 55555~~~~
如果字符串是private static String article = "";
则输出是一个单词 ,你还得修改下