2016-07-12 13 views
2
import java.util.Scanner; 

    public class Main { 
    private static Scanner scan; 
    private static int n; 
    private static int b[]; 
    private static String a1; 
    private static String a2; 
    private static int t[]; 

    public static void main(String s[]) { 
     scan = new Scanner(System.in); 
     n = scan.nextInt(); 
     b = new int[n]; 
     t = new int[n]; 
     for (int i = 0; i < n; i++) { 
      b[i] = scan.nextInt(); 
     } 

     a1 = scan.next(); 
     a2 = scan.next(); 

     for (int i = 0; i < n; i++) { 
      Character c = a1.charAt(i); 
      Character c2 = a2.charAt(i); 
      if (c.equals("G")) { 
       if (c2.equals("G")) { 
        System.out.println(i); 
       } 
      } 
     } 
    } 

} 

私は袋の値をn個取得しています。その後、各バッグにリンゴをつけます。そのために、私はforループを使用しています。その後、2つのストリング。文字列は 'G'または 'B'のいずれかでなければなりません(例:GGGBG(GはGood、BはBad))。Javaの2文字を比較する

この2つの文字列は、バッグ内のリンゴに関するさまざまな人の意見から考えてください。両方のStringが同じ位置に 'G'を含む場合、コードはその位置を表示する必要があります。

しかし、動作していません。私はこのコードを実行しようとしていた。入力部分が機能しています。その後、画面には何も表示されません。

答えて

6

charAt(i)は、Characterではなくcharを返します。ただし、コンパイラでは自動的に1つになります。

ただし、Characterは、ではありません。は、Stringと等しくなります。

あなたのコードは次のようになります。

for (int i = 0; i < n; i++) { 
    char c1 = a1.charAt(i); 
    char c2 = a2.charAt(i); 
    if (c1 == 'G' && c2 == 'G') { 
     System.out.println(i); 
    } 
} 
+0

ありがとうございました。この変更により、コードが機能しました。 –