public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String roster1 = scanner.toString();
时间: 2023-06-25 19:01:52 浏览: 72
在你的代码中,你创建了一个 Scanner 对象来读取用户输入,但是你在尝试将 Scanner 对象转换为字符串,这是不正确的。为了读取用户输入并将其存储为字符串,你应该使用 Scanner 对象的 nextLine() 方法,如下所示:
```
Scanner scanner = new Scanner(System.in);
String roster1 = scanner.nextLine();
```
这将等待用户输入并将其存储在名为 roster1 的字符串变量中。
相关问题
public static void main(String args[]) throws IOException { Scanner sc=new Scanner(System.in);
这是 Java 中一个简单的主函数,它使用 Scanner 类从命令行读取输入。具体来说,它创建了一个名为 sc 的 Scanner 对象,并将其与标准输入流 System.in 关联。接下来,它可以使用 sc 对象调用 Scanner 类中的方法来读取用户在命令行中输入的数据。在这个示例中,它使用了 throws IOException 来处理可能的输入输出异常。
public static void main(String[] args) throws Exception { Scanner scanner = new Scanner(System.in); String[] name= new String[5]; String[] name1={}; for (int i=0;i<name.length;i++ ){ System.out.println("请输入"); String next = scanner.next(); name1[i]=next; System.out.println(name1); } System.out.println(name1);}那行不对
这段代码存在两个问题:
1. `name1` 的长度为 0,使用 `name1[i]` 会抛出 `ArrayIndexOutOfBoundsException` 异常。可以使用 `new String[5]` 来初始化 `name1` 的长度。
2. `System.out.println(name1)` 会输出 `name1` 数组的地址,而不是数组中的元素。可以使用 `Arrays.toString()` 方法将数组转换为字符串输出。
修改后的代码如下:
```java
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
String[] name = new String[5];
String[] name1 = new String[5];
for (int i = 0; i < name.length; i++) {
System.out.println("请输入");
String next = scanner.next();
name1[i] = next;
System.out.println(Arrays.toString(name1));
}
System.out.println(Arrays.toString(name1));
}
}
```