[英]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.