为什么我得到的是原始词加上反向词?
Why am I getting the original word plus the reverse word?
我的 return 输入“否”显示为“中午”
我看到它在哪里将原始单词添加到 StringBuilder
。我如何让它不这样做,并且只将字符添加到一个空的 StringBuilder
,相反?
public class Palindrome
{
public static String reversed(String originalWord)
{
int lengthOfWord = originalWord.length();
StringBuilder reversedWordBuilder = new StringBuilder(originalWord);
for (int currentChar = lengthOfWord-1; currentChar >= 0; currentChar--)
{
reversedWordBuilder.append(Character.toString(originalWord.charAt(currentChar)));
}
return reversedWordBuilder.toString();
}
}
您正在用 originalWord 本身初始化 StringBuilder:
StringBuilder reversedWordBuilder = new StringBuilder(originalWord);
所以它的初始值已经是“no”,然后你将反转的值附加到它上面。您应该使用空构造函数初始化它,例如:
StringBuilder reversedWordBuilder = new StringBuilder();
然后在循环中执行您的逻辑。
由于您已经使用了 StringBuilder,因此您可以在一个衬里中执行以下操作:
public static String reversed(String originalWord) {
return new StringBuilder(originalWord).reverse().toString();
}
我的 return 输入“否”显示为“中午”
我看到它在哪里将原始单词添加到 StringBuilder
。我如何让它不这样做,并且只将字符添加到一个空的 StringBuilder
,相反?
public class Palindrome
{
public static String reversed(String originalWord)
{
int lengthOfWord = originalWord.length();
StringBuilder reversedWordBuilder = new StringBuilder(originalWord);
for (int currentChar = lengthOfWord-1; currentChar >= 0; currentChar--)
{
reversedWordBuilder.append(Character.toString(originalWord.charAt(currentChar)));
}
return reversedWordBuilder.toString();
}
}
您正在用 originalWord 本身初始化 StringBuilder:
StringBuilder reversedWordBuilder = new StringBuilder(originalWord);
所以它的初始值已经是“no”,然后你将反转的值附加到它上面。您应该使用空构造函数初始化它,例如:
StringBuilder reversedWordBuilder = new StringBuilder();
然后在循环中执行您的逻辑。
由于您已经使用了 StringBuilder,因此您可以在一个衬里中执行以下操作:
public static String reversed(String originalWord) {
return new StringBuilder(originalWord).reverse().toString();
}