访问字符串数组中的某个位置

时间:2014-04-01 11:27:48

标签: java arrays

我想在数组中输入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]);
            }
    }
}

5 个答案:

答案 0 :(得分:1)

您可以创建静态数组,而不是从中读取值

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

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

答案 1 :(得分:1)

您的代码应如下所示:

        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));
        }

答案 2 :(得分:1)

有几件事。

您可以像array一样制作String String[] names = new String[3]for(index = 1; index <= names.length; index++) 个对象。

在你的第一个循环中你就是这样开始的:

0

这是错误的,你从index <= names.length;的索引开始,除非你想跳过第一个元素。然后你定义array,这也是错误的。长度返回实际长度,但我们现在知道for(index = 0; index < names.length; index++) 从0开始。您应该像这样定义:

System.out.println(names[<an index>].charAt(2));

正如其他人之前所说过的,如果你想从字符串中获取某个字符,你可以使用`myString.charAt()',所以在你的情况下你应该这样写:

{{1}}

答案 3 :(得分:1)

试试这个:

  

在你的第一个循环中:

for(index = 0; index < names.length; index++)
  

删除你的第二个循环,因为没有wana显示每个元素,你可以直接这样做:

System.out.println(names[1].charAt(1));

答案 4 :(得分:0)

如果要访问字符串中的某个字符,请使用mystring.charAt(index)