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

        }   
    }

}
4

3 回答 3

2

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

public String reverse(String stringToReverse) {
    return new StringBuffer(stringToReverse).reverse().toString();
}
于 2012-11-19T10:21:16.890 回答
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);
        }
    } 
}
于 2016-06-19T16:27:58.083 回答
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"
}

}

我希望这可以帮助你。

于 2013-10-24T19:07:02.767 回答