3 回答
TA贡献1859条经验 获得超6个赞
修复语法错误非常简单。您已经告诉 Java 您想要创建一个名为 的变量b
,int b = inputString.length;
因此当它看到int b - 1;
Java 时认为您正在尝试创建一个名为 的新变量b
。我假设您想从 中减去一个b
,为此将行更改为b = b - 1;
。
TA贡献1828条经验 获得超3个赞
不仅降低了 的值b
,而且您的代码中还存在一些永远无法成功编译的错误。实际上,整个代码充满了错误。我一一指出错误,但给你一个建议,在实际解决问题之前,请尝试正确学习JAVA编程的基础知识。
1.
String reverseString = 0;
该行应该会出现编译错误,因为 int 无法转换为 String。
正确的语法可以是这样的:
String reverseString = "";
2.
int x = inputString.length;
在 Java 中,length
变量适用于数组,而对于字符串,length()
方法也是如此。
所以,修复是:
int x = inputString.length();
3.
int b = inputString.length;
当您charAt(b)
稍后获取代码时,您将获得StringIndexOutOfBoundsException
. 因为索引charAt()
从 0 开始到 string_length - 1 结束。
所以,修正是:
int b = x;
4.
for (int i = 0; i > x; i++)
完全错误的逻辑,正确检查条件。i > x
意味着循环根本不会继续进行。所以,应该是:
for (int i = 0; i < x; i++)
5.
int b - 1;
明显错误的语法。如果你想减少变量值,你不需要在int
对已经声明的变量进行每个操作之前。因此,正确的语法可以是:
b = b - 1;
或者,简单地说:
b--;
6.
String reverseString = reverseString + "a";
一旦我告诉你应该在声明期间为变量使用一次数据类型。这里也"a"
只是一个字符串。要获取变量值,您应该使用 justa
而不是 with ""
。所以,修复是:
reverseString = reverseString + a;
7.
if (reverseString == inputString) { return false; } else { return true; }
首先,我们不使用==符号比较 java 中的字符串相等性。那是因为==只比较对象而不是字符串中的实际内容。在这种情况下,您必须使用.equals()方法。另一件事是,由于您的方法名称是checkPalindrome(),理想情况下它应该在回文时返回 true ,在不是时返回 false 。但是,你正在做相反的事情。IDK,也许您也在您内部main()或从您调用此方法的地方以相反的方式正确处理此问题。
因此,更正将是:
if (reverseString.equals(inputString))
return true;
else
return false;
所以,就是这样
完整的方法将是这样的:
boolean checkPalindrome(String inputString) {
String reverseString = "";
int x = inputString.length();
int b = x;
for (int i = 0; i < x; i++) {
char a = inputString.charAt(b);
b--;
reverseString = reverseString + a;
}
if (reverseString.equals(inputString))
return true;
else
return false;
}
代码可以进一步简化为:
boolean checkPalindrome(String inputString) {
String reverseString = "";
int x = inputString.length();
for (int i = x - 1; i >= 0; i--)
reverseString += inputString.charAt(i);
if (reverseString.equals(inputString))
return true;
else
return false;
}
添加回答
举报