在我的回文java程序中获取错误
我创建了一个palindorme java程序,该程序出现错误。错误是int不能转换为boolean在我的回文java程序中获取错误,java,Java,我创建了一个palindorme java程序,该程序出现错误。错误是int不能转换为boolean import java.util.Scanner; public class palindrome { public static void main() { Scanner sc = new Scanner(System.in); int l,i; String s,s1; System.out.print
import java.util.Scanner;
public class palindrome
{
public static void main()
{
Scanner sc = new Scanner(System.in);
int l,i;
String s,s1;
System.out.println("Enter your string");
s = sc.nextLine();
l = s.length();
for(i=0;l-i-1;i++)
{
s1 = s + s.charAt(i);
}
if(s1==s)
System.out.println("This is Palindrome");
else
System.out.println("This is not a Palindrome");
}
}
For循环条件似乎是错误的
for(initial counter; condition to terminate; increase counter) {}
for(i=0; i<l; i++) {}
for(初始计数器;终止条件;增加计数器){
对于(i=0;i以及上面的答案,您可以尝试不同的方法。检查回文不需要全部字符串长度。回文可以通过迭代数组长度的一半来检查,如下所示-
public void checkPalindrome(String strToCheck){
char[] arr = strToCheck.toCharArray();
int size = arr.length;
char [] original = Arrays.copyOf(arr,arr.length);
for (int i = 0; i < size / 2; i++) {
char temp = arr[i];
arr[i] = arr[size-i-1];
arr[size-i-1] = temp;
}
if(Arrays.equals(arr, original)) {
System.out.println("Palindrome");
} else {
System.out.println("Not a palindrome");
}
}
public void checkPalindrome(字符串strToCheck){
char[]arr=strToCheck.toCharArray();
int size=arr.length;
char[]original=Arrays.copyOf(arr,arr.length);
对于(int i=0;i
我们在这里做了什么:
- 先将字符串反转,然后迭代到一半
- 使用
Arrays.equals()
方法将反向字符串与原始字符串进行比较
这里有很多东西,首先是固定代码:
public static void main(String [] args)
{
Scanner sc = new Scanner(System.in);
int l,i;
String s = "",s1 = "";
System.out.println("Enter your string");
s = sc.nextLine();
l = s.length();
for(i = l - 1; i >= 0; i--)
{
s1 = s1 + s.charAt(i);
}
if(s1.equals(s))
System.out.println("This is Palindrome");
else
System.out.println("This is not a Palindrome");
}
首先要修复的是for
循环,因为您看到了一个错误。这是通过将初始i
设置为长度减1,将循环条件更改为i>=0
,并使用i--
从i
每个循环中减去1来修复的
对循环所做的这些更改使得从字符串中最后一个位置开始的字符是s.charAt(i)返回的第一个字符
这样您就可以反转字符串了。我想您正试图按照这些思路将字符从末尾添加到字符串中
我还将s1=s+s.charAt(I)
更改为s1=s1+s.charAt()
,因此添加了正确的String
(但这可能是StringBuilder
)
s
和s1
现在的初始条件是”
,而不是零
最后,您不能将字符串
相等与=
进行比较,它必须是s1.相等
测试运行:
输入您的字符串
赛车
这是回文
for循环中的条件似乎不正确。至少我的IDE显示了一个错误。您希望循环条件中的l-i-1
是什么意思?而且您以错误的方式比较字符串(在本例中)-使用equals