2

我正在尝试制作一个程序来计算字符串的单词。

以下是我的代码,以及我的代码中出现的错误,我无法更正它们:

import java.util.*;    
class string1 {
    public static int wordcount() {
        String str;
        Scanner s1= new Scanner(System.in);
        System.out.println("Enter String:");
        str=s1.nextLine();
        int count=WCount(str);
        System.out.println("Count="+count);
    }

    public static int WCount(String str) {
        int l=str.length();
        int count=0;
        for(int i=0;i<l;i++) {
            if(str.charAt(i)==' ')
                count++ ;
        }
        if(count>0) 
            count++ ;
        return(count);
    }
}
public static void main (String s[]) {
    string1 ss=new string1();
    ss.wordcount();
}

错误 :

java:25: class, interface, or enum expected
public static void main(String s[]) {
          ^
C:\Users\coocl\Desktop\java\string1.java:27: class, interface, or enum expected
ss.wordcount();
^
C:\Users\coocl\Desktop\java\string1.java:28: class, interface, or enum expected}3 errors

Process completed.
4

5 回答 5

5

你班主任不在了。在类中声明它。

于 2012-07-20T17:40:21.407 回答
4

main方法属于的类。当您运行java执行您的编译代码时,它会尝试运行main属于您指定的类的方法。更一般地说,方法不能在 java 中的类之外声明:所有方法都必须属于一个类。

请注意,由于您的方法wordcountWCount都是静态的,因此您不需要创建string1实例来使用它们,您可以在类中调用它们main

string1.wordcount();

最后,在 java 中,以大写开头的类名是惯例,例如String1,请参阅这些命名约定

于 2012-07-20T17:40:23.360 回答
0

}在 WCount 之后你有一个额外的。

于 2012-07-20T17:40:30.077 回答
0

main方法必须在类内部,而不是外部。你有两种方法:

  1. 把它移到你的string1班级里。

  2. 将其移动到同一个 *.java 文件中的类中

    public class Main {
        public static void main (String s[]) {
            string1 ss=new string1();
            ss.wordcount();
        }
    }
    
于 2012-07-20T17:41:36.197 回答
0

不良做法:

string1 ss=new string1(); 
ss.wordcount(); 

Java 类名中的第一个字符必须为大写,
Java 方法和字段名中的第一个字符必须为小写;
JAVA 常量(静态最终)名称中的所有字符必须大写;
wordCount() = 静态方法和创建对象 (string1 ss=new string1()) 不正确。
静态字段和方法需要从类名(不是实例类)调用。
ClassName.(method/field)
必须是 String1.wordCount()

您的代码有多个问题(在 wordcount() 中的“{}”、“return”中)参见代码:

public class Test {
    public static int wordcount() {
        String str;
        Scanner s1 = new Scanner(System.in);
        System.out.println("Enter String:");
        str = s1.nextLine();
        int count = WCount(str);
        System.out.println("Count=" + count);
        return count;
    }

    public static int WCount(String str) {
        int l = str.length();
        int count = 0;

        for (int i = 0; i < l; i++) {
            if (str.charAt(i) == ' ')
                count++;
        }
        if (count > 0)
            count++;
        return (count);
    }

    public static void main(String s[]) {
                Test.wordcount();
    }
}
于 2012-07-20T17:42:18.073 回答