Java 为什么字符串长度为-1

Java 为什么字符串长度为-1,java,string,Java,String,我找到了下面的程序来检查字符串是否是回文的 import java.util.Scanner; public class PalindromeString{ public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.println("Enter the string which you want to check whether that

我找到了下面的程序来检查字符串是否是回文的

import java.util.Scanner;

public class PalindromeString{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        System.out.println("Enter the string which you want to check whether that is palindrome or not: ");
        String s = in.next();
        String r = "";
        for(int i=s.length()-1; i>=0; i--){
            r = r+s.charAt(i);
        }
        System.out.println("Reverse of entered string "+s+" is "+r);
        if(r.equals(s)){
            System.out.println("String "+s+" is palindrome.");
        }else{
            System.out.println("String "+s+" is not palindrome.");
        }
    }
}

我不明白为什么编码器将循环变量
I
初始化为
s.length()-1
。谁能解释一下原因吗?我搜索了字符串长度的相关内容,但找不到答案

字符串是字符数组,数组索引从0开始计数


length是该字符数组中的元素数量,但由于数组从0开始,因此最高索引是元素数量-1==>。length()-1

字符串是字符数组,数组索引从0开始计数


length是该char数组中的元素数量,但由于数组从0开始,因此最高索引是元素数量-1==>。length()-1

charAt的索引从0开始。ie.0是第一个字符


这意味着长度为10的字符串的字符数在0-9之间,而不是1-10。

字符的索引从0开始。ie.0是第一个字符


这意味着长度为10的字符串的字符数在0-9之间,而不是1-10之间。

因为Java字符串使用基于零的索引


i、 e.字符串中的字符索引来自0…n-1,因为Java字符串使用基于零的索引


i、 e.字符串中的字符索引从0…n-1开始

字符的索引从0开始。ie.0是第一个字符


这意味着长度为10的字符串的字符数在0-9之间,而不是1-10之间。应该是这样子的

字符的索引从0开始。ie.0是第一个字符


这意味着长度为10的字符串的字符数在0-9之间,而不是1-10之间。应该是这样子的

因为java索引数组来自0

例如,“Hello”字符串的长度是5。“H”是0。“Hello”字符串的字符。 根据这一点,“e”字符是1的整数。位置,并且“o”在4中

很容易看出没有5(字符串的长度)位置,所以如果我们想要最后一个字符,我们需要长度-1。位置


我还建议看一下

,因为java索引数组来自0

例如,“Hello”字符串的长度是5。“H”是0。“Hello”字符串的字符。 根据这一点,“e”字符是1的整数。位置,并且“o”在4中

很容易看出没有5(字符串的长度)位置,所以如果我们想要最后一个字符,我们需要长度-1。位置


另外,我建议看一看Java(和大多数其他语言)中元素的索引总是从0开始,然后继续到元素大小/元素数量下面的数字1

String string = "Hello World"
“H”是字符串中的第一个元素,因此被索引为“0”,即字符串[0]=“H”,“e”被索引为“1”-字符串[1]=“e”,等等。最后一个元素将被索引为“10”

因此,在上面的示例中,对于包含11个元素的数组,索引从0到10(字符串长度减1)

我认为这比我更能解释它(并且有图片!)


不要忘记字符串在Java中是一个字符数组,因此请阅读本文以了解有关操作和访问数组的更多信息--

Java(以及大多数其他语言)中元素的索引总是从0开始,然后继续到元素大小/元素数下的数字1

String string = "Hello World"
“H”是字符串中的第一个元素,因此被索引为“0”,即字符串[0]=“H”,“e”被索引为“1”-字符串[1]=“e”,等等。最后一个元素将被索引为“10”

因此,在上面的示例中,对于包含11个元素的数组,索引从0到10(字符串长度减1)

我认为这比我更能解释它(并且有图片!)


不要忘记字符串在Java中是一个字符数组,因此请阅读本文以了解有关操作和访问数组的更多信息--

,因为变量
i
用作索引,Java中的索引从0开始。如果未执行
-1
,则for循环中的第一条语句将触发错误,因为
s.charAt(s.length())
不存在-请验证这一点,这在大多数使用基于0的索引的语言中是一个至关重要的理解。可能的重复,因为变量
i
用作索引,java中的索引从0开始。如果未执行
-1
,则for循环中的第一条语句将触发错误,因为
s.charAt(s.length())
不存在-请验证这一点,对于使用基于0的索引的大多数语言来说,这是一个非常重要的理解