[英]How to get the last index from a String in a for loop
我正在尝试制作一个检查输入String是否为回文的程序。 我终于设法首先将其转换为char数组,但是我不知道如何从for循环中的String访问最后一个索引。
import java.util.Scanner;
public class Task8 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean isPalindrome = true;
System.out.println("Please, enter string!");
String str = sc.nextLine();
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
if(chars[i]!= chars[chars.length-i-1]){
isPalindrome = false;
break;
}
}
if(isPalindrome){
System.out.println("It is palindrome!");
}
if(!isPalindrome){
System.out.println("It isnt a palindrome!");
}
}
}
这是看起来像在工作的最终结果,但是如果我尝试类似的操作,eclipse将返回错误:
for(int i = 0; i < str.length(); i++){
if(str.charAt(i)!= str.charAt(str.length(-1-i)){
isPalindrome = false;
break;
}
}
如果我将-1-i
大括号(str.charAt(i)!= str.charAt(str.length()-1-i))
放在外面,这是(str.charAt(i)!= str.charAt(str.length()-1-i))
,但是为什么在第一个索引上它让我把i
在大括号中,对于最后一个索引,我不能在大括号中使用i
和-1
吗?
length()
方法不带任何参数。 是采用索引参数的charAt(...)
方法。
顺便说一句,直到输入字符串的中间。
for (int i = 0; i < str.length() / 2; i++) {
if (str.charAt(i) != str.charAt(str.length() -i - 1)) {
isPalindrome = false;
break;
}
}
str.length(-1-i)
语法不正确, str.length()
API不接受任何参数,其唯一目的是为您提供给定字符串的长度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.