私はJavaの初心者ですが、PHPでの経験は豊富で、Javaのexplodeおよびimplode(PHPで使用可能)関数の完全な代替を探しています。
私は同じことをグーグルで検索しましたが、結果に満足していません。誰でも私の問題に対して良い解決策を持っていることを歓迎します。
例えば:
String s = "x,y,z";
array a = javaExplode(',',s); //what is javaExplode??
System.out.println(Arrays.toString(a));
望ましい出力:
[x, y, z]
StringのJavadoc は、explode
に関してString.split()
が探しているものであることを示しています。
Javaには、「結合」に相当する「内破」は含まれていません。他の回答が示唆するように、単純な関数に巨大な外部依存関係を含めるのではなく、数行のコードを書くだけです。それを実現する方法はいくつかあります。 StringBuilder
を使用することは1つです。
String foo = "This,that,other";
String[] split = foo.split(",");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < split.length; i++) {
sb.append(split[i]);
if (i != split.length - 1) {
sb.append(" ");
}
}
String joined = sb.toString();
String.split()
はexplode()
の代わりを提供できます
implode()
の代わりに、カスタム関数を記述するか、 Apache Commons のStringUtils.join()
関数を使用することをお勧めします。
適切な代替手段は、String.splitおよびStringUtils.joinメソッドです。
爆発:
String[] exploded="Hello World".split(" ");
実装:
String imploded=StringUtils.join(new String[] {"Hello", "World"}, " ");
ただし、StringUtilsは外部ライブラリにあることに注意してください。
Java.lang.String.split(String regex)
はあなたが探しているものです。
私はPHPに慣れていませんが、 String.split はJavaがPHP explode
と同等だと思います。 implode
に関しては、standartライブラリはそのような機能を提供しません。配列を反復処理し、 StringBuilder / StringBuffer を使用して文字列を作成します。または、優れた Google GuavaSplitter および Joiner またはsplit/join
メソッドを Apache Commons -で試すことができます StringUtils 。
stringクラスの参照で話している場合。あなたが使用できるように
subString/split
分解して文字列を使用する
連結
implodeの場合。