java 的 scanner问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 00:40:14
import java.util.Scanner;
import java.util.Random;

public class Ex9_lab3 {
public static void main(String[] args) {
System.out.println("Lab Week 3, Ex.9: Time Strings Problem");
System.out.println("Part A: a number of seconds and returns a string.");
partA();
System.out.println("Part B: receives a string with hours, minutes and seconds and returns a number of seconds");
partB();
System.out.println("Part C: Create another method which receives two parameters.");
partC();
System.out.println("Part D: call the methods you created in parts (a), (b), (c)");
partD();
}
private static void partA() {
String time = getnewtime(8930);
System.out.println(time);
}
private static void partB() {
String str = "0002: 28: 50";
int secs = convertsec(str);
System.out.println

scanner默认的分隔符是空白和回车符,所以你输入的0002: 28: 50中的空格会把输入分割成0002:,所以又出现String访问越界。

你只要把最后面的String time = scan.next(); 改成String time = scan.nextLine();就好了。nextLine是直接读取行的。