String[] planets = new String[] { "Mercury", "Venus", "Earth", "Mars",
"Jupiter", "Saturn", "Uranus", "Neptune" };
我有一個簡單的行星名稱數組,我想反轉添加到數組中的每個名稱(而不是字符串順序)。
我繼續lambda語法奮鬥:Lambda表達式來反轉一個字符串 - Java
Arrays.sort(planets, (first, second) -> new StringBuilder(first).reverse().toString());
System.out.println(Arrays.toString(planets));
目前我得到:
Multiple markers at this line
- The method
reverse()
in the typeStringBuilder
is not applicable for the arguments(String)
- Type mismatch: cannot convert from
String
toint
響應:
謝謝大家的建議... asList讓我接近。我仍然沒有正確排序。
所以我需要找到一種方法,使array.sort工作,因爲這是分配(採取array.sort和lambda它)。
我已經指導老師要求澄清在這裏,但我沒有時間。
這是我的工作,試圖保持的Array.sort
// lambda expression , long to short
System.out.println("5) Sorted by length (descending):");
Arrays.sort(planets, (first, second) -> second.length() - first.length());
System.out.println(Arrays.toString(planets));
// lambda expression , reverse the name , then sort in ascending order
// hint use new StringBuilder(first).reverse().toString() to reverse the string
System.out.println("6) Sorted in dictionary order of the reversed name (ascending)");
Arrays.sort(planets, (first, second) -> new StringBuilder(first).reverse().toString().compareTo(second));
System.out.println(Arrays.toString(planets));
// lambda expression , reverse the name , then sort in descending order
System.out.println("7) Sorted in dictionary order of the reversed name (descending)");
Arrays.sort(planets, (first, second) -> new StringBuilder(second).reverse().toString().compareTo(first));
System.out.println(Arrays.toString(planets));
我不能爲我的生活弄清楚什麼在這裏的是,所有3倍的表達讓我完全一樣的結果......每個那些給我原始數組排序最長到最短。
這是我的結果:
5)按長度排序(降序): [海王星,汞,木星,天王星,土星,金星,地球,火星]
6)在字典順序排序反向名稱在反轉名的字典順序排序(降序) [海王星,汞,木星(升序) [海王星,汞,木星,天王星,土星,金星,地球,火星]
7),天王星,土星,金星,地球,火星]
你爲什麼要叫'Arrays.sort()'? –
我正在使用Arrays.sort(),因爲我被要求做家庭作業。 –