Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字数计算java_Java_Arrays_String_Arraylist_Return - Fatal编程技术网

字数计算java

字数计算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++){

因此,我的代码应该返回的字数为字母长度,并且它可以工作,除非我输入任何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++){
            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+");