public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String roster1 = scanner.toString();
时间: 2023-06-25 14:01:52 浏览: 177
在你的代码中,你创建了一个 Scanner 对象来读取用户输入,但是你在尝试将 Scanner 对象转换为字符串,这是不正确的。为了读取用户输入并将其存储为字符串,你应该使用 Scanner 对象的 nextLine() 方法,如下所示:
```
Scanner scanner = new Scanner(System.in);
String roster1 = scanner.nextLine();
```
这将等待用户输入并将其存储在名为 roster1 的字符串变量中。
相关问题
import java.util.Scanner; public class Roster { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); /********** Begin *********/ String roster1 = scanner.toString(); // String roster2 = scanner.nextLine(); // System.out.println(roster1.length());为什么这里输出的是294
在这段代码中,`scanner.toString()`方法返回的是Scanner对象的字符串表示形式,它包含了Scanner对象的一些信息,如类名、哈希码等。因此,当你对Scanner对象调用`toString()`方法时,返回的字符串长度可能比你预期的要长。
如果你想要获取用户输入的字符串,应该使用`scanner.nextLine()`方法,而不是`scanner.toString()`方法。所以,你需要将注释中的代码修改为:
```
String roster1 = scanner.nextLine();
```
这样就可以获取用户输入的字符串了。
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));
}
}
```
阅读全文
相关推荐














