Shakka :
私は、URLなどを持っています: String url = "https://.../foo/a/555/data1";
目標:文字列にURLを変換します:a555data1
私は一度だけ文字列を横断し、この結果を構築したいです。私は、次のプロセスのために決めました。
- 私は後ろから始まる文字列「ストリーム」にしたいです。
- それは両端キューの先頭にバックスラッシュの挿入/アペンドされていない場合。
- それは第三のバックスラッシュエンドである場合
私は正常に書き込まれている恐ろしいソリューションを、以下のことがかなりのストリームを使用して行うことができますか?
Deque<String> lifo = new ArrayDeque<>();
int count = 0;
for (int i = testUrl.length() - 1; count < 3 ; --i) {
if (testUrl.codePointAt(i) == ((int) '/') ) {
++count;
continue;
}
result.addFirst(testUrl.substring(i,i+1));
}
String foo = result.stream().collect(Collectors.joining());
assertThat(foo).isEqualTo("a606KAM1");
ラビンドラRanwala:
あなたは、それがとても好き行うことができます
final String[] splitStrArr = url.split("/");
String result = Arrays.stream(splitStrArr).skip(splitStrArr.length - 3)
.collect(Collectors.joining(""));