将文本添加到打印数组?

时间:2016-09-15 05:59:43

标签: java arrays

我是一名刚从Java开始的学生;我对看似简单的概念感到困惑,尽管有很多谷歌搜索,却很难找到答案。作业要求:

  • 提示用户输入人数
  • 创建给定大小的字符串数组
  • 提示用户输入每个人的姓名
  • 将每个名称放在您创建的字符串数组中
  • 使用Java for-each打印名称长度为
  • 的每个名称

输出应该类似于:

  • “人1被命名为Andrew,他们的名字长6个字符”

这是我目前编码的内容。

sqrt

现在,程序可以收集用户的输入,将其放入数组中,然后将数组打印出来。

我接近这个错误的方式吗?我想不出我将如何修改最后一个For不仅仅打印所有名称,而是打印出每个人用“人X被命名...”,他们的名字,然后描述多少个字符他们的名字很长。

3 个答案:

答案 0 :(得分:3)

了解string concatenation

    int j = 1;
    for(String peoples : myPeople)
    {   
            System.out.println("Person " + j + " is named " + peoples + " and their name is " + peoples.length() + " characters long");
            j++;
    }

+运算符用于串联字符串。

答案 1 :(得分:2)

你做得很好。在最后一个for循环中,您可以执行以下操作:

int personNumber = 0;
for(String people: myPeople)
{
System.out.println(String.format("Person %d is named %s, and their name is %d characters long", personNumber + 1, people, people.length());
personNumber++;
}

我注意到了一件事 - 为什么要使用new String[people + 1]实例化数组?为什么这个额外的一个人?数组索引从0开始计算,因此new String[5]将为您提供5个人的数组。

答案 2 :(得分:0)

首先,您应该创建一个大小为people的数组,而不是people + 1

String[] myPeople = new String[people];

要以所需格式生成输出,您需要使用+运算符将字符串连接在一起。此外,由于数组中人员的位置是必需的,您需要创建一个变量来存储:

int index = 1;
for (String person: myPeople) {
    String output = "Person " + index + " is named " + person + ", and their name is " + person.length() + " characters long.";
    System.out.println(output);
    index++;
}

或者,您可以使用print代替println :(仅在for循环中显示代码)

System.out.print("Person ");
System.out.print(index);
System.out.print(" is named ");
System.out.print(person);
System.out.print(", and their name is ");
System.out.print(person.length());
System.out.println(" characters long.");
index++;