反向弦回文

时间:2012-11-19 10:17:18

标签: string reverse

嗨我正试图扭转一个字符串来制作回文。有人可以给我一个如何反转字符串的教程吗?我已经在网上阅读了一些教程,并且我已经尝试将它们应用到我正在编写但尚未成功的回文程序中。

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);

        }   
    }

}

3 个答案:

答案 0 :(得分:2)

要反转字符串,可以使用StringBuffers reverse()方法:

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

答案 1 :(得分: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);
        }
    } 
}

答案 2 :(得分: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"
}

}

我希望这可以帮到你。