【发布时间】:2018-03-08 20:50:25
【问题描述】:
所以我的问题是关于获得反转字符串,但只有更长或等于 5 个字符的单词。 因此,如果我们将(“Hey Fellow Warriors”)传递给该方法,我们应该得到“Hey wollef sroirraw”作为回报。我的代码给了我一些奇怪的结果,它们是=“sroirraw Fellow Warriors”。
这是我的代码,请给我一些线索。最后一个单词后面的空格不应该返回,但我不知道为什么会这样。
public class PrimeChecker {
public String spinWords(String sentence) {
String[] tablica = sentence.split(" ");
for ( String x : tablica ) {
int y = 0;
if ( x.length() >= 5 ) {
StringBuilder p = new StringBuilder(x).reverse();
x = p.toString();
}
tablica[y] = x;
y++;
}
StringBuilder wynik = new StringBuilder();
for ( String z : tablica ) {
int y = 0;
tablica[y] = z;
wynik.append(tablica[y]);
if (tablica.length > 1 && y != tablica.length - 1 ) {
wynik.append(" ");
}
y++;
}
return wynik.toString();
}
}
测试员
public class PrimeCheckerTest {
public static void main(String[] args) {
PrimeChecker obiekt = new PrimeChecker();
System.out.println(obiekt.spinWords("Hey fellow warriors").toString());
}
}
【问题讨论】:
-
错字:
int y = 0;应该没有循环。 -
这意味着您当前,在每次迭代中,使用默认的
0值再次覆盖y。 -
天哪,我真是瞎了眼,谢谢 :o
-
那里还有很多
toString()方法调用。您不需要 prntln 中的那个,因为您的 spinWords 返回一个字符串。你不必toStringString -
从 Java 8 开始我们有 String.join 所以第二个循环可能会被它替换。