我正在尝试制作一个程序来计算字符串中的单词。
以下是我的代码,以及我的代码中出现的错误,我无法更正它们:
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:UserscooclDesktopjavastring1.java:27: class, interface, or enum expected
ss.wordcount();
^
C:UserscooclDesktopjavastring1.java:28: class, interface, or enum expected}3 errors
Process completed.
您的main不在类中。在类内部声明它。
main
方法属于类内部。当您运行java
来执行编译的代码时,它将尝试运行属于您指定的类的main
方法。更一般地说,方法不能在java中的类之外声明:所有方法都必须属于一个类。
注意,由于方法wordcount
和WCount
都是静态的,因此不需要创建string1
实例来使用它们,只需在main
:中的类上调用它们即可
string1.wordcount();
最后,在java中,类名通常以大写字母开头,例如String1
,请参阅以下命名约定。
在WCount之后有一个额外的}
。
main
方法必须在类内部,而不是外部。你有两种方法:
-
在
string1
类中移动它。 -
将其移动到同一*.java文件中的类中
public class Main { public static void main (String s[]) { string1 ss=new string1(); ss.wordcount(); } }
不良做法:
string1 ss=new string1();
ss.wordcount();
Java类名中的第一个字符必须是UPPER和
Java方法和字段名称中的第一个字符必须是LOWER大小写
JAVA常量(静态最终)名称中的所有字符都必须是大写
wordCount()=静态方法和创建对象(字符串1 ss=新字符串1())不为true
静态字段和方法需要从类名(而不是实例类)调用
ClassName。(方法/字段)
必须是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();
}
}