一つだけトラバーサルで最初の文字列から文字列を構築する方法 - Javaの8

Shakka :

私は、URLなどを持っています: String url = "https://.../foo/a/555/data1";

目標:文字列にURLを変換します:a555data1

私は一度だけ文字列を横断し、この結果を構築したいです。私は、次のプロセスのために決めました。

  1. 私は後ろから始まる文字列「ストリーム」にしたいです。
  2. それは両端キューの先頭にバックスラッシュの挿入/アペンドされていない場合。
  3. それは第三のバックスラッシュエンドである場合

私は正常に書き込まれている恐ろしいソリューションを、以下のことがかなりのストリームを使用して行うことができますか?

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(""));

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=182630&siteId=1
おすすめ