2012-11-19 72 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); 
     } 
    } 
}