-2

たとえば、5、4、3、2、1を含む文字列がある場合、新しい文字列を作成する方法や、1、2、3、4、5を印刷する方法を教えてください。ありがとう。

4

6 に答える 6

1

そのようなことをしてください:

StringBuilder builder = new StringBuilder("3, 2, 1");

 System.out.println(builder.reverse());
于 2012-09-28T02:39:37.023 に答える
0

組み込みの方法を使用できる場合、これが最短の解決策です。

String input = "12345";
String output = new StringBuilder(input).reverse().toString();

独自のソリューションを実装する必要がある場合、これは、を使用しchar[]て入力文字列の半分だけを反復処理する効率的な答えです。

String input = "12345";
char[] chars = input.toCharArray();
for (int i = 0, n = chars.length; i < n/2; i++) {
    char tmp = chars[i];
    chars[i] = chars[n-i-1];
    chars[n-i-1] = tmp;
}
String output = new String(chars);

いずれにせよ、入力は逆になります。

System.out.println(output);
> 54321
于 2012-09-28T02:34:13.200 に答える
0

文字列を文字配列に変換します。characterarray の長さ -1 から 0 までのインデックスをループして、一度に各文字を印刷します。

于 2012-09-28T02:35:04.980 に答える
0

コンマ区切りの文字列を配列に解析する方法については、この質問を参照してください。配列を逆にしてから、配列をカンマ区切りの文字列に戻すという同じ質問を参照してください。

また、移植が容易な例として、このc# コードを使用することもできます。

于 2012-09-28T02:36:48.033 に答える
0

自然な順序を気にせずに を逆にすることだけに興味がある場合はString、次のようにすることができます

String word = "1, 2, 3, 4, 5";
word = word.replace(", ", "");

StringBuilder s = new StringBuilder();
for (int i = 0; i <= word.length() - 1; i++) {
    char c = word.charAt(word.length() - i - 1);
    if (s.length() > 0) {
        s.append(", ");
    }
    s.append(c);
}

どの出力5, 4, 3, 2, 1

もちろん、数字の自然な順序を維持することに関心がある場合は、もう少し複雑になります...

//String value = "1, 2, 3, 4, 5";
String value = "1, 5, 4, 3, 2";
System.out.println("Start with " + value);
String parts[] = value.split(", ");

// We need to convert the String values to ints
List<Integer> listOfValues = new ArrayList<Integer>(5);
for (String part : parts) {
    listOfValues.add(Integer.parseInt(part));
}
// Allow the API to sort them...
Collections.sort(listOfValues);

StringBuilder sb = new StringBuilder(value.length());
for (Integer part : listOfValues) {
    if (sb.length() > 0) {
        sb.append(", ");
    }
    sb.append(part);
}

System.out.println(sb);


System.out.println(s.toString());

どの出力

Start with 1, 5, 4, 3, 2
1, 2, 3, 4, 5
于 2012-09-28T02:39:30.147 に答える
0

これはあなたがそれを行う方法です:

String values = "5, 4, 3, 2, 1";
values = values.replace(", ", " ,");
StringBuilder sb = new StringBuilder(values);
values = sb.reverse().toString();
System.out.println(values);

出力は次のとおりです。

1, 2, 3, 4, 5
于 2012-09-28T06:44:42.873 に答える