입력 문자열이 palindrome인지 확인하는 프로그램을 만들려고합니다. 마침내 그것을 char 배열로 변환 할 수 있었지만 for 루프의 String에서 마지막 인덱스에 액세스하는 방법을 알 수 없었습니다.for 루프에서 문자열의 마지막 인덱스를 얻는 방법
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!");
}
}
}
이가이 작동 것처럼 보이는 최종 결과이지만, 내가 좋아하는 뭔가하려고하면 이클립스가 오류를 반환 : 내가 괄호 (str.charAt(i)!= str.charAt(str.length()-1-i))
외부 -1-i
를 넣어 경우
for(int i = 0; i < str.length(); i++){
if(str.charAt(i)!= str.charAt(str.length(-1-i)){
isPalindrome = false;
break;
}
}
것은 그것은 작동하는지, 하지만 왜 첫 번째 인덱스에서 중괄호 안에 i
을 넣을 수 있으며 마지막 인덱스는 중괄호 안에 i
과 -1
을 사용할 수 없습니까?
배열의 요소에 액세스하는 것과 길이 메서드를 호출하는 것 사이에 혼란스러워하고 있다고 생각합니다. 'chars [chars.length-i-1])'는'str.length (-1-i)'와 같지 않다. '[]'와'()'에는 큰 차이가 있습니다. 또한 코드에서 _show 오류가 발생하는 경우 us_합니다. – csmckelvey