【问题标题】:Convert array element to a string and print first character?将数组元素转换为字符串并打印第一个字符?
【发布时间】:2018-10-25 23:13:12
【问题描述】:

我需要根据用户输入创建一个字符串数组并打印每个元素的第一个字母。我知道我需要以某种方式将数组转换为字符串,但不确定如何完成此操作。我没有成功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));
    }
}

【问题讨论】:

    标签: java arrays string


    【解决方案1】:

    您需要遍历Array 中的每个String,然后打印第一个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() 不使用换行符。在nextInt() 之后添加一个空白的nextLine() 调用

    • 您正在循环直到&lt;= array.length,这将导致indexOutOfBounds 错误。您只需要循环直到小于array.length

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:
        Arrays.stream(nameArray).map(s -> s.charAt(0)).forEach(System.out::println);
        

        【讨论】:

          猜你喜欢
          • 2011-09-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-21
          • 2019-05-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多