将数组元素转换为字符串并打印第一个字符?

时间:2018-10-25 23:13:13

标签: java arrays string

我需要根据用户输入创建一个字符串数组,并打印每个元素的首字母。我知道我需要以某种方式将数组转换为字符串,但不确定如何实现。我使用Arrays.toString

失败

以下是我的代码:

import java.util.Scanner;
import java.util.Arrays;
class Main{
    public static void main(String[] args){
        Scanner inp = new Scanner(System.in);
        System.out.println("How many names would you like to enter in this array?: ");
        int numName = inp.nextInt();
        String nameArray[] = new String[numName];
        System.out.println("Enter the names: ");

    for(int i = 0; i <= nameArray.length; i++){
          nameArray[i] = inp.nextLine();
        }
        System.out.println(nameArray.charAt(0));
    }
}

3 个答案:

答案 0 :(得分:3)

您需要遍历String中的每个Array,然后打印第一个char。您可以使用charAt()和一个循环来做到这一点。

for(String str : nameArray) {
   System.out.println(str.charAt(0));
}

或者您可以使用Arrays.stream()

Arrays.stream(nameArray).forEach(e -> System.out.println(e.charAt(0)));

您的代码也只有几个问题:

  • 您将要遇到this问题,因为nextInt()不会占用换行符。在nextLine()

  • 之后添加空白的nextInt()呼叫
  • 您要循环运行,直到<= array.length,这将导致indexOutOfBounds错误。您只需要循环直到小于array.length

答案 1 :(得分:0)

只需对“ nameArray”进行另一次迭代,并获取每个数组元素的第一个字符,然后将其打印出来。

例如,您可以使用for-each:

for(String name : nameArray) {
  System.out.println(name.charAt(0));
}

答案 2 :(得分:0)

Arrays.stream(nameArray).map(s -> s.charAt(0)).forEach(System.out::println);