我是Java新手,正在寻找代码优化技术.这段代码使用两个for循环给出了预期的输出,我想减少/消除循环(如果可能的话).
public static void main(String[] args) {
String dummy = "Hello how are you";
String[] strArr = dummy.split(" ");
for(int i=0; i < strArr.length;i++){
String word = strArr[i];
for(int j=word.length(); j > 0; j--){
System.out.print(word.charAt(j - 1));
}
System.out.print(" ");
}
}
Run Code Online (Sandbox Code Playgroud)
输出: olleH woh era uoy
请指教.
由于打印输出的复杂性将保持不变,您所能做的就是将循环"隐藏"到现有方法中,这些方法可以执行您想要的操作,而不是消除它们,因为系统需要执行的工作量保持不变.需要处理的字符数的术语.
您可以使用此问答中描述的字符串反转技术隐藏嵌套循环.外环可以推入String.join:
String[] data = {"quick", "brown", "fox"};
System.out.println(
String.join(
" "
, Arrays.stream(data)
.map(s -> new StringBuilder(s).reverse().toString())
.toArray(String[]::new)
)
);
Run Code Online (Sandbox Code Playgroud)