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 (奇数) の 2 つの結果回文文字列があると想定する必要があります。

これが私のコードです:

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 に答える