2015-10-17 92 views
-1

我試圖做一個程序,檢查palindromes(單詞拼寫相同的向前和向後)。我想最終將第一個字符與最後一個字符進行比較,將第二個字符與第二個字符進行比較。我不知道在'endingChar'字符串中放置什麼來檢查它。謝謝。如何在Java中向後索引字符串的字符?

import java.util.Scanner; 
public class Test { 
    public static void main(String args[]) { 
     String userPhrase; 
     Scanner sc = new Scanner(System. in); 

     System.out.println("Check for palindrome:"); 
     userPhrase = sc.nextLine(); 

     for (int i = 0; i < userPhrase.length(); i++) { 
      String currentChar = userPhrase.substring(i, i + 1); 
      String endingChar = userPhrase.substring(); 

      System.out.println(currentChar); 
      System.out.println(endingChar); 
      // if (userPhrase.indexOf(currentChar).equalsIgnoreCase(userPhrase.indexOf())) 
     } 

    } 

} 
+1

查看'String.charAt'方法。字符串的最後一個字符與長度「L」有什麼索引? –

回答

0

*取自Here,不要給我信用。

下面是檢查整數迴文的一些代碼。您可以在邏輯應用到你的代碼,使之成爲字符串以及工作:

// numbers to check 

    int numbers[] = new int[]{ 252, 54, 99, 1233, 66, 9876 }; 



    // loop through the given numbers 

    for (int i = 0; i < numbers.length; i++) { 



     int numberToCheck = numbers[i]; 

     int numberInReverse = 0; 

     int temp = 0; 



     // a number is a palindrome if the number is equal to it's reversed number 



     // reverse the number 

     while (numberToCheck > 0) { 

      temp = numberToCheck % 10; 

      numberToCheck = numberToCheck/10; 

      numberInReverse = numberInReverse * 10 + temp; 

     } 



     if (numbers[i] == numberInReverse) { 

      System.out.println(numbers[i] + " is a palindrome"); 

     } 

     else { 

      System.out.println(numbers[i] + " is NOT a palindrome"); 

     } 
+0

只要在評論中發佈鏈接,如果你不想從原作者 –

+0

@YassinHajaj那裏獲得功勞,我還沒有所需的聲望,否則我會擁有。 –

0

你可以,而使用此

for(int i=0;;i++) 
{ 
    if(i>=userPhrase.length-i) 
     break; 
    if(userPhrase.charAt(i)==userPhrase.charAt(userPhrase.length-i)) 
    { 
     continue; 
    } 
     System.out.println("Not matched"); 
} 
3

最簡單的方法來檢查迴文將利用StringBuilder.reverse()

boolean isPalindrome = userPhrase.equals(
      new StringBuilder(userPhrase).reverse().toString()); 

System.out.printf("[%s] is a palindrome? %b", userPhrase, isPalindrome); 
+0

打我吧! –

相關問題