打印数组';s组件,但它打印空+;指定索引处的值(JAVA)
代码应该返回“MCV”,没有空格。我不知道为什么它会在打印指定字符之前打印Null,它应该在数组填充后打印,或者至少我认为应该打印。您可以使用打印数组';s组件,但它打印空+;指定索引处的值(JAVA),java,arrays,java.util.scanner,Java,Arrays,Java.util.scanner,代码应该返回“MCV”,没有空格。我不知道为什么它会在打印指定字符之前打印Null,它应该在数组填充后打印,或者至少我认为应该打印。您可以使用StringBuilder或String或StringBuffer等类型的变量将所需值附加到。当前,您正在向已初始化为null的数组元素追加值。此外,您不需要多个扫描仪的实例(且从不在循环中) 演示: How many names would you like to enter?: 3 Gimme a name!: Moe Gimme a name!:
StringBuilder
或String
或StringBuffer
等类型的变量将所需值附加到。当前,您正在向已初始化为null
的数组元素追加值。此外,您不需要多个扫描仪的实例(且从不在循环中)
演示:
How many names would you like to enter?: 3
Gimme a name!: Moe
Gimme a name!: Curly
Gimme a name!: Vader
[nullM, nullC, nullV]
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("How many names would you like to enter?: ");
int total = Integer.parseInt(scanner.nextLine());
String[] mainArray = new String[total];
StringBuilder sb = new StringBuilder();
for (int i = 0; i < total; i++) {
System.out.print("Gimme a name!: ");
mainArray[i] = scanner.nextLine();
if (mainArray[i].length() >= 1) {
sb.append(mainArray[i].charAt(0));
}
}
System.out.println(Arrays.toString(mainArray));
System.out.println(sb);
}
}
请注意,我使用了Integer.parseInt(scanner.nextLine())
而不是scanner.nextInt()
,这样整数输入后输入的新行字符就不会被下次扫描使用。查看以了解更多信息。mainArray[i]=mainArray[i]+name.charAt(0)
mainArray[i]
此时您认为存储在mainArray[i]中的值是什么?或者更好的问题是,当您开始时,mainArray[i]中存储了什么?一个小提示:您不必创建新的扫描仪来读取不同的输入。您可以使用amount来读取名称。在使用“amount.close()和names.close()”mainArray[i]=mainArray[i]+name.charAt(0)读取扫描仪后,还应关闭扫描仪
与mainArray[i]=null+name.charAt(0)相同代码>在您的代码中。你真的认为这就是你想要做的吗?不要在程序结束前关闭任何使用System.in的扫描仪。一旦您关闭这样的扫描仪,它将关闭System.in,祝您好运重新打开它。
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("How many names would you like to enter?: ");
int total = Integer.parseInt(scanner.nextLine());
String[] mainArray = new String[total];
StringBuilder sb = new StringBuilder();
for (int i = 0; i < total; i++) {
System.out.print("Gimme a name!: ");
mainArray[i] = scanner.nextLine();
if (mainArray[i].length() >= 1) {
sb.append(mainArray[i].charAt(0));
}
}
System.out.println(Arrays.toString(mainArray));
System.out.println(sb);
}
}
How many names would you like to enter?: 3
Gimme a name!: Moe
Gimme a name!: Vader
Gimme a name!: Curly
[Moe, Vader, Curly]
MVC