4

サンプル入力:

abc def ghi

出力例:

Cba Fed Ihg

これは私のコードです:

import java.util.Stack;

public class StringRev {
    static String output1 = new String();
    static Stack<Character> stack = new Stack<Character>();
    public static void ReverseString(String input) {
        input = input + " ";
        for (int i = 0; i < input.length(); i++) {
            boolean cap = true;
            if (input.charAt(i) == ' ') {
                while (!stack.isEmpty()) {
                    if (cap) {
                        char c = stack.pop().charValue();
                        c = Character.toUpperCase(c);
                        output1 = output1 + c;
                        cap = false;
                    } else
                        output1 = output1 + stack.pop().charValue();
                }
                output1 += " ";
            } else {
                stack.push(input.charAt(i));
            }
        }
        System.out.print(output1);
    }
}

より良い解決策はありますか?

4

6 に答える 6

2

StringBufferを文字列に使用できreverse()ます。

次に、WordUtils#capitalize(String)メソッドを使用して、文字列の最初の文字を大文字にします。

String str = "abc def ghi";
StringBuilder sb = new StringBuilder();
for (String s : str.split(" ")) {
    String revStr = new StringBuffer(s).reverse().toString();
    sb.append(WordUtils.capitalize(revStr)).append(" ");
}
String strReversed = sb.toString();
于 2013-10-18T10:34:15.210 に答える
1

1)これで文字列を逆にします

StringBuffer a = new StringBuffer("Java");
a.reverse();

2)最初の文字を大文字にするには、Apache Commons langパッケージorg.apache.commons.lang.StringUtilsのStringUtilsクラスを使用します

最初の文字を大文字にします

capitalise(String);

それが役に立てば幸い。

于 2013-10-18T10:40:09.117 に答える
1

編集済み

最初に文字列を反転し、最初の文字を大文字にします

String string="hello jump";
StringTokenizer str = new StringTokenizer(string," ") ;
String finalString ;

while (str.hasMoreTokens()) {
   String input = str.nextToken() ;
   String reverse = new StringBuffer(input).reverse().toString();
   System.out.println(reverse);

   String output = reverse .substring(0, 1).toUpperCase() + reverse .substring(1);
   finalString=finalString+" "+output ;
}

System.out.println(finalString);
于 2013-10-18T10:32:38.710 に答える
1
public static String reverseString(final String input){
    if(null == input || isEmpty(input))
        return "";

    String result = "";
    String[] items = input.split(" ");

    for(int i = 0; i < items.length; i++){
        result += new StringBuffer(items[i]).reverse().toString();
    }

    return result.substring(0,1).toupperCase() + result.substring(1);
}
于 2013-10-18T10:34:23.400 に答える