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

4
我需要从用户输入中创建一个字符串数组,并打印每个元素的第一个字母。我知道我需要以某种方式将数组转换为字符串,但不确定如何实现。我尝试使用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个回答

3
你需要遍历数组中的每个字符串,然后打印第一个字符。你可以使用charAt()和循环来实现。
for(String str : nameArray) {
   System.out.println(str.charAt(0));
}

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

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

你的代码还存在一些问题:

  • 你可能会遇到这个问题,因为nextInt()不会消费掉换行符。在nextInt()之后添加一个空的nextLine()调用。

  • 你正在循环,直到<= array.length,这将会导致一个indexOutOfBounds错误。你需要只循环直到小于array.length


0

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

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接