我現在正在嘗試將 map() 函式應用于字串流,以便新流包含每個字串的排序版本。也就是說,它會有“行為”而不是“貓”。我正在嘗試運行該方法:
Stream<String> sortedStream = validWordStream.map(s -> Arrays.sort(s.toString().toCharArray()));
但是,它抱怨回傳的流是物件流,而不是字串:

題
我必須對 map() 函式進行哪些直觀的更改才能獲得排序字串流?
uj5u.com熱心網友回復:
由于Array.sort的回傳型別是void,因此您不能將其值用作map結果。
Stream<String> validWord = foo();
Stream<String> validSortedWord = validWord
.map(s -> s.codePoints().sorted().toArray())
.map(sortedCodepoints -> new String(sortedCodePoints, 0, sortedCodePoints.length - 1))
uj5u.com熱心網友回復:
對每個字符陣列進行排序,然后生成一個新的字串:
Stream<String> sortedStream = validWordStream
.map(s -> { char[] c = s.toCharArray();
Arrays.sort(c);
return new String(c);});
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/377647.html
下一篇:修復洗掉字串中的字母的回圈問題
