2016-06-21 8 views
-3

このコードは正しいですか?文字列で比較する

class Palindrome 
{ 
    public static void main(String[] args) 
    { 
     String original = "Dot is Got"; 

     int len = original.length(); 

     for (int i = 0; i < len; i++) { 
      char[] a = charAt[i]; 
     } 

     for (int j = len; j >= 0; j++) { 
      char[] b = charAt[j]; 
     } 

     if (a[] == b[]) { 
      System.out.print("Palindrome"); 
     } 
    } 
} 
+6

いいえ、それは正しくありません。 –

+0

コンパイルしていますか?それが実行されるとき、それはあなたが期待するように実行しますか?いくつかの異なる入力文字列、期待される結果、実際の結果を教えてください。 – rajah9

+2

私はクッキーが欲しかった。コードは私がそれを実行したときに私にクッキーを与えませんでした。 -1。 –

答えて

0

あなたのコードはコンパイルされません。

for (int i= 0; i < len ; i++) 
{  
    char[] a = charAt[i]; 
} 

for (int j= len ; j>=0 ; j++) 
{ 
    char[] b = charAt[j];  
} 

ここでは、配列(AおよびB)は、常にあなたがループの外側にアクセスすることができないローカル変数を作って、さらに上書き続ける長さlとをインスタンス化されていません。

あなたは何をすることができますを行うには

if (a[]==b[]) 
{ 
    System. out. print("Palindrome"); 
} 

のような配列を比較することはできません

public static void main (String[] args) 
{ 
    String original = "Dot is Got"; 
    StringBuilder sb = new StringBuilder(original); 
    if(original.equals(sb.reverse().toString())) { 
     System. out. print("Palindrome"); 
    } else { 
     System. out. print("Not a palindrome"); 
    } 
} 

は逆の機能を理解するためにthisを参照してくださいされています。

あなたはまだそれをあなたがそれをやっている方法を実行したい場合は、ヨーヨーは私が何を達成しようとすると、このかなりあると思います

public class Palindrome { 
    public static void main (String[] args) 
    { 
     String original= "Dot is Got"; 
     int len = original.length(); 
     boolean palindrome = true; 
     for (int i= 1; i <= len ; i++) 
     { 
      if(original.charAt(len-i) == original.charAt(i-i)) { 
       continue; 
      } else { 
       palindrome = false; 
       break; 
      } 
     } 
     if(palindrome) { 
      System.out.println("Palindrome"); 
     } else { 
      System.out.println("Not a Palindrome"); 
     } 
    } 
} 
1

にコードを変更する必要があります。

String original = "Dot is Got"; 

int len = original.length(); 
char[] a = new char[len]; 
for (int i = 0; i < len; i++) { 
    a[i] = original.charAt(i); 
} 
char[] b = new char[len]; 
for (int j = len - 1; j >= 0; j--) { 
    b[len - 1 - j] = original.charAt(j); 
} 

if (Arrays.equals(a, b)) { 
    System.out.print("Palindrome"); 
} else { 
    System.out.print("Not a palindrome"); 
} 

出力:

 
Not a palindrome