2012-11-19 110 views
2

嗨我想扭轉字符串,使迴文。有人可以給我一個關於如何扭轉字符串的教程嗎?我已經在線閱讀了一些教程,並試圖將它們應用到我正在編寫的迴文計劃中,但未取得成功。反向字符串迴文

import java.util.Random; 

public class IterativePalindromGenerator { 

    public static void main(String[] args) { 

     Random random = new Random(); 

     int floorValue = 1; 

     int cielingValue = 20; 

     int randomNumber = random.nextInt(cielingValue - floorValue) 
       + floorValue; 

     String alphabetLetters = "abcdefghijklmnopqrstuvwxyz"; 

     for (int i = 0; i < randomNumber; i++) { 

      char generatedLetters = alphabetLetters.charAt(random 
        .nextInt(alphabetLetters.length())); 

      String generatedLetterSTRINGType = Character 
        .toString(generatedLetters);// converts char to string 

      System.out.print(generatedLetterSTRINGType); 

     } 
    } 

} 
+0

[檢查此鏈接,並相應地改變對迴文結構。] [1] [1]:http://stackoverflow.com/a/27171827/4295340 –

回答

2

要扭轉一個字符串,你可以使用StringBuffers反向()方法:

public String reverse(String stringToReverse) { 
    return new StringBuffer(stringToReverse).reverse().toString(); 
} 
0

當創建現有字符串迴文,你需要考慮的偶數和奇數結果字符串的情況。例如,如果輸入字符串「abc」,您應該期望有兩個結果迴文字符串:abccba(偶數)和abcba(奇數)。

這裏是我的代碼:

public class PalindromeGenerator { 

public static void main(String[] args) { 
    String str = "abc"; 
    String reverse_str = ""; 


    for (int n = str.length(); n>0; n--){ 
     reverse_str += str.substring(n-1, n); 
    } 

    String even_str = str + reverse_str; 
    String odd_str = str.substring(0, str.length()-1) + reverse_str; 

    System.out.println(even_str); // print "abccba" 
    System.out.println(odd_str); //print "abcba" 
} 

} 

我希望這可以幫助你。

1

嘿,這是我的大學課程代碼。我們的任務是實現遞歸過程。希望這可以幫助社區。

package DiskreteMathe; 
import java.util.*; 

public class AufgabePalindromTestRekursiv { 

    public static void main (String[] args){ 
     Scanner sc = new Scanner(System.in);  
     System.out.println("Please enter text here:"); 
     String text= sc.next(); 
     System.out.println(testPalindrom(text)); 
    } 
    public static boolean testPalindrom (String text){ 
     if (text.length()==2 && text.charAt(0)==text.charAt(1) || text.length()==1) 
      return true; 
     if(text.charAt(0)!=text.charAt(text.length()-1)){ 
      return false; 
     } else { 
      text = text.substring(1, text.length()-1); 
      return testPalindrom(text); 
     } 
    } 
}