6

Javaにこの文字列配列があるとしましょう

String[] test = {"hahaha lol", "jeng jeng jeng", "stack overflow"};

しかし今、上記の配列内の文字列のすべての空白を に置き換えて、%20このようにしたいと思います

String[] test = {"hahaha%20lol", "jeng%20jeng%20jeng", "stack%20overflow"};

どうすればいいのですか?

4

7 に答える 7

10

配列を繰り返し処理し、各エントリをエンコードされたバージョンに置き換えます。

そのように、実際にURL互換の文字列のみを探していると仮定します。

for (int index =0; index < test.length; index++){
  test[index] = URLEncoder.encode(test[index], "UTF-8");
}

現在のJavaに準拠するには、エンコーディングを指定する必要がありますが、常にである必要がありますUTF-8

より一般的なバージョンが必要な場合は、他のすべての人が提案していることを実行してください。

for (int index =0; index < test.length; index++){
    test[index] = test[index].replace(" ", "%20");
}
于 2012-01-25T15:31:32.267 に答える
4

簡単な解決策は次のとおりです。

for (int i=0; i < test.length; i++) {
    test[i] = test[i].replaceAll(" ", "%20");
}

ただし、URL で使用するためにこれらの文字列をエスケープしようとしているようです。その場合は、それを行うライブラリを探すことをお勧めします。

于 2012-01-25T15:31:40.643 に答える
3

使ってみてくださいString#relaceAll(regex,replacement); テストされていませんが、これは機能するはずです:

for (int i=0; i<test.length; i++) {
  test[i] = test[i].replaceAll(" ", "%20");
}
于 2012-01-25T15:32:08.367 に答える
1

文字列ごとに replaceAll("\\s", "%20") を実行します

于 2012-01-25T15:31:47.510 に答える
1
String[] test={"hahaha lol","jeng jeng jeng","stack overflow"};
                for (int i=0;i<test.length;i++) {
                    test[i]=test[i].replaceAll(" ", "%20");
                }
于 2012-01-25T15:33:19.347 に答える
0

Javaドキュメントから直接...文字列javaドキュメント

String.replace('toreplace'、'replacement')を実行できます。

forループを使用して配列の各メンバーを反復処理します。

于 2012-01-25T15:33:32.173 に答える