从变量数组java中获取字符串的长度

时间:2014-02-01 00:36:57

标签: java

我是一名学习Java的学生,这是我的程序的一部分,它应该得到一个字符串的长度,但字符串都在一个数组中。我尝试在eclipse中运行它,它说我得到一个错误,它说length = name[x].length()有人可以让我知道是否有办法解决这个问题

public class GuessName
{

    Random random = new Random();

    Scanner scan = new Scanner(System.in);
    String[] name = new String[10];
    int x,length;
    char guess1,guess2,guess3;

    public void names()
    {
        name[0] = "MARK";
        name[1] = "CHARLIE";
        name[2] = "MEG";
        name[3] = "KYLE";
        name[4] = "JUSTIN";
        name[5] = "KATARINA";
        name[6] = "JOEL";
        name[7] = "KEVIN";
        name[8] = "MICHAEL";
        name[9] = "JENNA";
        name[10] = "GREG";
    }

    public void start()
    {
        x = random.nextInt(10);
        length = name[x].length();
    }

2 个答案:

答案 0 :(得分:1)

你有一个数组,如下所示:

String[] name = new String[10];

[]之间的数字表示数组的大小。在您的示例中,您的数组大小为10,这意味着您的数组有10个索引[0,9](因为索引从0开始)。 names()方法的最后一行是:

name[10] = "GREG";

你知道我在哪里吗?

此外,您的main方法是什么样的?如果您收到NullPointerException,则可能表示您在start()之前致电names()

答案 1 :(得分:0)

我评论了有问题的部分。此外,您尝试初始化11个名称而不是10个。请注意,数组索引从0开始。我不知道为什么你有扫描仪对象,但你可以使用这个块来完成你的代码。

import java.util.Random; 
import java.util.Scanner;

  public class GuessName {



 //   Scanner scan = new Scanner(System.in);
    String[] name = new String[10];
    int x,length;
    char guess1,guess2,guess3;

    public GuessName()
    {
        name[0] = "MARK";
        name[1] = "CHARLIE";
        name[2] = "MEG";
        name[3] = "KYLE";
        name[4] = "JUSTIN";
        name[5] = "KATARINA";
        name[6] = "JOEL";
        name[7] = "KEVIN";
        name[8] = "MICHAEL";
        name[9] = "JENNA";
       // name[10] = "GREG";
    }

    public void start()
    {
        Random random = new Random();
        this.x = random.nextInt(10);
        this.length = name[this.x].length();
    }
    public static void main(String[] args) {
        GuessName gn = new GuessName();

        gn.start();

        System.out.println("The name is: "+gn.name[gn.x]+" and the length is: "+ gn.x);
    } }