3 回答

TA貢獻1779條經驗 獲得超6個贊
我稍微清理了你的代碼。不要依賴不會提高代碼可讀性的臨時變量。嘗試使用for-each循環(它們可以提高可讀性)。應用這兩點,給我們
String[] list = { "every", "nearing", "checking", "food", "stand", "value" };
for (String word : list) {
for (int i = word.length() - 1; i >= 0; i--) {
System.out.print(word.charAt(i));
}
System.out.println();
}
這是基于您的原始代碼。就個人而言,我更喜歡使用StringBuilder它的reverse()方法。喜歡,
for (String word : list) {
System.out.println(new StringBuilder(word).reverse());
}
或在 Java 8+ 中,map類似
Arrays.stream(list).map(s -> new StringBuilder(s).reverse())
.forEachOrdered(System.out::println);

TA貢獻1877條經驗 獲得超6個贊
for ( int i = length - 1 ; i >= 0 ; i-- )
length您在上面使用的值是list數組的長度,而不是單詞。
記住在每個循環后清空反向詞:
System.out.println(reverse);
reverse = "";
如果你不沖洗,你會得到:
yrev
yrevgnirae
yrevgniraegnikceh
yrevgniraegnikcehdoo
yrevgniraegnikcehdoodnat
yrevgniraegnikcehdoodnateula
代替:
yrev
gnirae
gnikceh
doo
dnat
eula

TA貢獻1804條經驗 獲得超7個贊
驗證提供的參數在 Main.java:13 中是否有效。檢查提供的偏移量是否指向有效索引,并且 count 參數未指向大于字符串本身大小的索引。
一個替代:
public String[] reverseString(String[] words)
{
String[] reverse=new String[words.length];
for(int i=0;i<words.length;i++)
{
//added for setting element as emptyString instead of null
reverse[i] = "";
for(int j=words[i].length()-1;j>=0;j--)
{
reverse[i]+=words[i].substring(j,j+1);
}
}
System.out.println(Arrays.toString(reverse));
return reverse;
}
添加回答
舉報