字数计算java
因此,我的代码应该返回的字数为字母长度,并且它可以工作,除非我输入任何0或更少的值,请一些应用程序帮助发现错误 编辑代码:字数计算java,java,arrays,string,arraylist,return,Java,Arrays,String,Arraylist,Return,因此,我的代码应该返回的字数为字母长度,并且它可以工作,除非我输入任何0或更少的值,请一些应用程序帮助发现错误 编辑代码: public class WordCount { public static int countWords(String original, int minLength){ String[] s1 = original.split("\\s+"); for(int i = 0; i < s1.length; i++){
public class WordCount {
public static int countWords(String original, int minLength){
String[] s1 = original.split("\\s+");
for(int i = 0; i < s1.length; i++){
s1[i] = s1[i].replaceAll("^\\W]", "");
}
int count = 0;
for(int i = 0; i < s1.length; i++){
String str = s1[i];
int len = 0;
for(int x = 0; x < str.length(); x++){
char c = str.charAt(x);
if(Character.isLetter(c) == true){
len ++;
}
}
if(len >= minLength){
count ++;
}
}
return count;
}
public static void main(String[] args){
System.out.println("enter string: ");
String s = IO.readString();
System.out.println("min length: ");
int m = IO.readInt();
System.out.println(countWords(s, m));
}
}
试试这个:
因为这里还必须替换大于1的空格。我将应用一种解决方案,使用a来处理文本 我准备了一个代码草图,可以总结如下:
String[] words = myString.replaceAll("[^a-zA-Z ]", " ").split("\\s+");
此代码的作用是:
把不是字母的东西替换掉,因为你说的是用空格代替字母
在空间上拆分结果
生成的数组字包含所有字,即原始字符串中包含的字母序列
可以找到完整的示例。在本例中,我只是将单词作为列表打印。如果只需要字数,只需返回数组中的元素数。失败的原因是什么?。你能发布异常跟踪或关于失败原因的详细信息吗?请明确你得到的错误和原因我编辑了代码,但如果我键入字符串hey。。厕所。我收到的是3而不是2,因为答案只有2个字。@Newb18这与你的问题完全不同。。。
String[] words = myString.replaceAll("[^a-zA-Z ]", " ").split("\\s+");