コンソールに何かを入力したとします((8+8)
)。次に、角かっこの挿入が正しいかどうかをプログラムが知らせます。我々は正しいブラケットを持っている他のブラケットの挿入が正しい(算術)かどうかを言うJavaのコードをゆっくりとしようとしています
() this means if one array element is (and next)
)(
if the amount of "(" is not equal to amount of ")"
:ここ
は間違っブラケットの私の(もちろん、完成していない)の定義です。
私のコードはコンソール入力を文字列配列要素に分割します。私はこれらと一緒に働きます。問題は私が例のように(8)
を持っているとき私が出力True
を得るステートメントを書くことができないことです。ここで
は私のコードです:
import java.util.Scanner;
public class Brackets{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String any = input.nextLine();
String sArray[] = any.split("");
int counter1=0;
int counter2=0;
for(int i=0; i<sArray.length-1; i++){
if(sArray[i].equals("(")){
counter1++;
}
if(sArray[i].equals(")")){
counter2++;
}
if(sArray[i].equals("(") && sArray[i+1].equals(")")){
System.out.println("False");
return;
}
if(sArray[i].equals(")") && sArray[i+1].equals("(")){
System.out.println("False");
return;
}
}
if(counter1 == counter2){
System.out.println("True");
}
if(counter1 != counter2){
System.out.println("False");
}
}
}
私はこの
if(sArray[i].equals("(") && sArray[i+1].equals(")")){
System.out.println("False");
return;
}
に問題があると思います。しかし、私は、私は、このような(など2つの近傍の配列要素を探していた場合、その方法を修正することができます)
'(8 +)8'は何を返しますか – Ishnark
@Ishnarkだから私は「ゆっくり」と「もちろん終了していません」という言葉を使用しています。まず私の質問に対する答えを探しています。私は自分自身で残りの部分を続けることができました。 – cnmesr
_ this_に問題があると思われますが、正確にはどういう意味ですか? –