-4

次のような入力文字列があり、入力文字列ABCDEFGの 1 番目、3 番目、6 番目の位置を含む文字列を出力する必要がありますACF。これを達成するための最良の方法は何ですか? ありがとう!

更新: 解決策をありがとう、それらは役に立ちます! 別の関連する質問: 入力文字列のほとんどが必要な場合、つまり出力文字列に 2 番目以外のすべての文字が含まれている場合の解決策は何でしょうかACDEFGStringBuilder+charAt()は最速ですか?StringBuilder入力文字列が長い場合 (100 文字) 、最初の文字を(を使用して) 連結する方が良いでしょう。substring(2)

4

5 に答える 5

1
String result = "" + input.charAt(0) + input.charAt(2) + input.charAt(5);
于 2013-04-11T10:27:09.243 に答える
1

部分文字列メソッドは、呼び出されるたびに最初から文字列を解析するという事実に加えて、時間のかかるメソッドです。代わりに chartAt メソッドを試して、次のように String に連結する代わりに StringBuilder に追加します。

public static void main(String[] args){
        String s = "ABCDEFGH";
        System.out.println(new StringBuilder().append(s.charAt(0)).append(s.charAt(2)).append(s.charAt(5)));
    }
于 2013-04-11T10:27:56.157 に答える
0

指定されたインデックスで文字列の文字を返すクラスcharAt(int)のメソッドを使用できます。Stringしかし、それは値を返します。したがって、メソッドを使用charするように変換する必要があります。 次のように実行できます。StringCharacter.toString(char)

String input = "ABCDEFG";

String result = Character.toString(input.charAt(0)) + 
                Character.toString(input.charAt(2)) + 
                 Character.toString(input.charAt(5));
于 2013-04-11T10:37:06.820 に答える
0

文字ピッキング機能が必要な場合は、次のようになりcharsAtます。

String t = charsAt("ABCDEFG", 0, 2, 5); // Zero based indices

public String charsAt(String s, int... indices) {
    char[] chs = new char[indices.length];
    for (int i = 0; i < chs.length; ++i) {
        chs[i] = s.charAt(indices[i]);
    }
    return new String(chs);
}
于 2013-04-11T10:34:00.497 に答える