文字a、b、cを使用してランダムな3文字の文字列を生成するコードを書いています。ランダム変数を作成した行の後に、「トークン ";"、{このトークンの後に期待される構文エラー」というエラーメッセージが表示されます(Random Rand = new Random();)。見た目が良いのに、なぜこのエラーが発生するのかわかりません。
また、次のエラーメッセージが表示されます。構文エラー。プログラムの最後の角かっこの後に「}」を挿入してClassBodyを完成させます。私はほぼすべての閉じ括弧が一致しているので、このエラーがどこから来ているのかわかりません。助けてください!!
import Java.util.*;
public class Orders {
String alphabet = "abc";
ArrayList<String> list = new ArrayList<String>();
int n = alphabet.length();
Random Rand = new Random();
for (int i = 0; i < 10000; i++){
char a = alphabet.charAt(Rand.nextInt(n));
char b = alphabet.charAt(Rand.nextInt(n));
char c = alphabet.charAt(Rand.nextInt(n));
String s = Character.toString(a) + Character.toString(b) + Character.toString(c);
if(list.indexOf(s) == -1){
list.add(s);
}
}
system.out.println(arrayList);
}
Javaでは、実行可能ステートメントをクラスに直接書き込むことはできません。メソッド内でコードを移動する必要があります。メソッド/ブロックの外部では、変数宣言のみが許可されます。テストのためだけに、すべてをメインメソッドに移動します。これを試して:
_ public class Orders {
public static void main(String argsp[]) {
String alphabet = "abc";
ArrayList<String> list = new ArrayList<String>();
int n = alphabet.length();
Random Rand = new Random();
for (int i = 0; i < 10000; i++){
char a = alphabet.charAt(Rand.nextInt(n));
char b = alphabet.charAt(Rand.nextInt(n));
char c = alphabet.charAt(Rand.nextInt(n));
String s = Character.toString(a) + Character.toString(b) + Character.toString(c);
if(list.indexOf(s) == -1){
list.add(s);
}
}
System.out.println(list);
}
}
_
注:arrayList
という変数がないため、system.out.println(arrayList);
はエラーをスローします。変数list
に置き換える必要があると思います。また、system
はSystem
である必要があります。
Javaでは、ループやその他のアクションをクラス定義の一部としてコーディングするのではなく、クラス内のメソッド/コンストラクター/ブロック定義としてコーディングすることができます。
for (int i = 0; i < 10000; i++){
char a = alphabet.charAt(Rand.nextInt(n));
char b = alphabet.charAt(Rand.nextInt(n));
char c = alphabet.charAt(Rand.nextInt(n));
String s = Character.toString(a) + Character.toString(b) + Character.toString(c);
if(list.indexOf(s) == -1){
list.add(s);
}
}
system.out.println(arrayList);
したがって、このコードはメソッド/コンストラクター/ブロックにある必要があります。
たとえばメソッドで
public void printList(){
for (int i = 0; i < 10000; i++){
char a = alphabet.charAt(Rand.nextInt(n));
char b = alphabet.charAt(Rand.nextInt(n));
char c = alphabet.charAt(Rand.nextInt(n));
String s = Character.toString(a) + Character.toString(b) + Character.toString(c);
if(list.indexOf(s) == -1){
list.add(s);
}
}
system.out.println(arrayList);
}
詳細については、 このリンク を参照してください。
main function内にコードを記述する必要があります。
あなたは主な機能を見逃しているだけです。
あなたのコード
import Java.util.*;
public class Orders {//Include main function
String alphabet = "abc";
ArrayList<String> list = new ArrayList<String>();
int n = alphabet.length();
Random Rand = new Random();
for (int i = 0; i < 10000; i++){
char a = alphabet.charAt(Rand.nextInt(n));
char b = alphabet.charAt(Rand.nextInt(n));
char c = alphabet.charAt(Rand.nextInt(n));
String s = Character.toString(a) + Character.toString(b) + Character.toString(c);
if(list.indexOf(s) == -1){
list.add(s);
}
}
system.out.println(arrayList);
}
正しいコード
package testprob;
import Java.util.*;
public class testprob {
public static void main(String arrg[]) {//you need to add main function
String alphabet = "abc";
ArrayList<String> list = new ArrayList<String>();
int n = alphabet.length();
Random Rand = new Random();
for (int i = 0; i < 10000; i++){
char a = alphabet.charAt(Rand.nextInt(n));
char b = alphabet.charAt(Rand.nextInt(n));
char c = alphabet.charAt(Rand.nextInt(n));
String s = Character.toString(a) + Character.toString(b) + Character.toString(c);
if(list.indexOf(s) == -1){
list.add(s);
}
}
System.out.println(list);
}
}
以下のようにコーディングすると、「invalid token'manage()...」というエラーが発生しました。それは、コードをクラスに直接書き込んだときです。
//前
public class test{ WebDriver driver=new FirefoxDriver(); driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); driver.get("http://http://www.extjs-tutorial.com/live-examples/extjs4/CRUD-in-Form-model/default.htm"); }
'
コードをメソッドに移動した後、それは機能しました
//後
public class test{
public void setup(){
WebDriver driver=new FirefoxDriver();
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
driver.get("http://http://www.extjs-tutorial.com/live-examples/extjs4/CRUD-in-Form-model/default.htm");
}}