Java 访问字符串数组中的特定位置

Java 访问字符串数组中的特定位置,java,arrays,Java,Arrays,我想在数组中输入3个名称。然后我想访问第二个名称中第二个字符的位置 首先,我在第13行得到一个越界异常。另外,我知道的第二个for循环完全关闭,请原谅 为什么会出现异常,如何访问特定字符串中的特定字符位置 class Names { public static void main(String[]args) { int index; String names[]; names = new String [3]; f

我想在数组中输入3个名称。然后我想访问第二个名称中第二个字符的位置

首先,我在第13行得到一个越界异常。另外,我知道的第二个for循环完全关闭,请原谅

为什么会出现异常,如何访问特定字符串中的特定字符位置

class Names
{
    public static void main(String[]args)
    {
        int index;
        String names[];
        names = new String [3];

        for(index = 1; index <= names.length; index++)
            {
                System.out.println("Enter name " + index);
                names[index] = EasyIn.getString();
            }
        for(index = 0; index < names.length; index++)
            {
                System.out.println(names[1][2]);
            }
    }
}
类名
{
公共静态void main(字符串[]args)
{
整数指数;
字符串名[];
名称=新字符串[3];

对于(index=1;index如果要访问字符串中的某个字符,请使用
mystring.charAt(index)
如果要访问字符串中的某个字符,请使用
mystring.charAt(index)
您可以创建静态数组,然后从中读取值

String[] array = {"Peter", "John", "Andre"}; //now you have three items in array
char secondChar = array[1].charAt(1); //first get second element, than get second char from it

所以现在
secondChar
o
-还要记住数组是从
0
开始的,这就是为什么索引
1
意味着数组中的第二项-这同样适用于
charAt
,字符串基本上就是字符数组。

您可以创建静态数组,然后从中读取值

String[] array = {"Peter", "John", "Andre"}; //now you have three items in array
char secondChar = array[1].charAt(1); //first get second element, than get second char from it

所以现在
secondChar
o
-还要记住数组从
0
开始,这就是为什么索引
1
意味着数组中的第二项-这同样适用于
charAt
,字符串基本上就是字符数组。

您的代码应该是这样的:

        int index;
        String names[];
        names = new String [3];

        for(index = 0; index < names.length; index++)
        {
            System.out.println("Enter name " + index);
            names[index] = EasyIn.getString();
        }
        for(index = 0; index < names.length; index++)
        {
            if (names[index] != null && names[index].length() > 2)
                System.out.println(names[index].charAt(2));
        }
for(index = 1; index <= names.length; index++)
for(index = 0; index < names.length; index++)
System.out.println(names[<an index>].charAt(2));
int索引;
字符串名[];
名称=新字符串[3];
对于(索引=0;索引2)
System.out.println(名称[索引].charAt(2));
}

您的代码应该如下所示:

        int index;
        String names[];
        names = new String [3];

        for(index = 0; index < names.length; index++)
        {
            System.out.println("Enter name " + index);
            names[index] = EasyIn.getString();
        }
        for(index = 0; index < names.length; index++)
        {
            if (names[index] != null && names[index].length() > 2)
                System.out.println(names[index].charAt(2));
        }
for(index = 1; index <= names.length; index++)
for(index = 0; index < names.length; index++)
System.out.println(names[<an index>].charAt(2));
int索引;
字符串名[];
名称=新字符串[3];
对于(索引=0;索引2)
System.out.println(名称[索引].charAt(2));
}
有几件事

您可以将
String
对象的
array
一次性设置为
String[]names=newstring[3]

在第一个循环中,开始时如下所示:

        int index;
        String names[];
        names = new String [3];

        for(index = 0; index < names.length; index++)
        {
            System.out.println("Enter name " + index);
            names[index] = EasyIn.getString();
        }
        for(index = 0; index < names.length; index++)
        {
            if (names[index] != null && names[index].length() > 2)
                System.out.println(names[index].charAt(2));
        }
for(index = 1; index <= names.length; index++)
for(index = 0; index < names.length; index++)
System.out.println(names[<an index>].charAt(2));
正如其他人之前所说,如果您想从字符串中获取某个字符,请使用“myString.charAt()”,因此在您的情况下,您应该编写如下内容:

        int index;
        String names[];
        names = new String [3];

        for(index = 0; index < names.length; index++)
        {
            System.out.println("Enter name " + index);
            names[index] = EasyIn.getString();
        }
        for(index = 0; index < names.length; index++)
        {
            if (names[index] != null && names[index].length() > 2)
                System.out.println(names[index].charAt(2));
        }
for(index = 1; index <= names.length; index++)
for(index = 0; index < names.length; index++)
System.out.println(names[<an index>].charAt(2));
System.out.println(name[].charAt(2));
有几件事

您可以将
String
对象的
array
一次性设置为
String[]names=newstring[3]

在第一个循环中,开始时如下所示:

        int index;
        String names[];
        names = new String [3];

        for(index = 0; index < names.length; index++)
        {
            System.out.println("Enter name " + index);
            names[index] = EasyIn.getString();
        }
        for(index = 0; index < names.length; index++)
        {
            if (names[index] != null && names[index].length() > 2)
                System.out.println(names[index].charAt(2));
        }
for(index = 1; index <= names.length; index++)
for(index = 0; index < names.length; index++)
System.out.println(names[<an index>].charAt(2));
正如其他人之前所说,如果您想从字符串中获取某个字符,请使用“myString.charAt()”,因此在您的情况下,您应该编写如下内容:

        int index;
        String names[];
        names = new String [3];

        for(index = 0; index < names.length; index++)
        {
            System.out.println("Enter name " + index);
            names[index] = EasyIn.getString();
        }
        for(index = 0; index < names.length; index++)
        {
            if (names[index] != null && names[index].length() > 2)
                System.out.println(names[index].charAt(2));
        }
for(index = 1; index <= names.length; index++)
for(index = 0; index < names.length; index++)
System.out.println(names[<an index>].charAt(2));
System.out.println(name[].charAt(2));
试试这个:

在第一个循环中:

试试这个:

在第一个循环中:


看看这个线程看看这个线程好的,还有一件事。这只允许我输入2个名称。一旦我输入2个名称,它会立即跳到第二个for循环,而不允许我输入第三个名称。我不知道你的“EasyIn.getStrig()”是什么意思函数正在执行,但它肯定被调用了三次。您应该看到输出。好的,还有一件事。这只允许我输入两个名称。输入两个名称后,它会立即跳到第二个for循环,而不允许我输入第三个名称。我不知道您的“EasyIn.getStrig()”是什么意思函数正在执行,但它肯定被调用了三次。您应该看到输出。