我需要根据用户输入创建一个字符串数组,并打印每个元素的首字母。我知道我需要以某种方式将数组转换为字符串,但不确定如何实现。我使用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));
}
}
答案 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);