java:25: classe, une interface ou une enum prévu public static void main(String s[]) {
Je suis en train de faire un programme pour compter les mots d'une chaîne.
Voici mon code, et les erreurs à venir dans mon code et je ne suis pas en mesure de les corriger:
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();
}
Erreur :
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.
- Les méthodes doivent être à l'intérieur d'une Classe,
main
doit être à l'intérieur (au moins) à l'intérieur de lastring1
classe que vous avez là
Vous devez vous connecter pour publier un commentaire.
Vous principal est de sortir de la classe. Déclarer à l'intérieur de la classe.
La
main
méthode appartient à l'intérieur de votre classe. Lorsque vous exécutezjava
pour l'exécution de votre code compilé, il va essayer d'exécuter lemain
méthode qui appartient à la classe que vous spécifiez. Plus généralement, les méthodes ne peut pas être déclarées à l'extérieur des classes en java: toutes les méthodes doivent appartenir à une classe.Noter que depuis vos méthodes
wordcount
etWCount
sont à la fois statique, vous n'avez pas besoin de créer unstring1
exemple pour les utiliser, vous pouvez simplement appeler sur la classe dansmain
:Enfin, en java, il est habituel de commencer la classe des noms avec des majuscules, par exemple
String1
, voir ces Conventions De Nommage.Vous avez un supplément de
}
après WCount.La
main
méthode doit être à l'intérieur d'une classe, pas à l'extérieur. Vous avez deux façons:Déplacer à l'intérieur de votre
string1
classe.Déplacer à l'intérieur d'une classe dans le même *.fichier java
Mauvaise pratique:
Le premier caractère dans le nom de la classe Java doit être SUPÉRIEUR et
Le premier caractère dans la méthode de Java et les champs nom doit être en minuscules;
Tous les caractères en JAVA constantes (static final) nom doit être en majuscules;
nombre de mots() = méthode statique et à créer l'objet (string1 ss=new mot1()) n'est pas vraie.
Les champs statiques et les méthodes doivent appeler à partir d'un nom de classe (pas l'instance de la classe).
ClassName.(méthode/champ)
Doit être Chaîne1.nombre de mots()
Votre code avoir plusieurs problème ("{}", "retour" en nombre de mots())
Voir le code: