3
import java.util.Scanner;
public class CourseSplitter {
public static void main(String args[]){
    Scanner keyboard = new Scanner(System.in);
    char[] course; //course code format: ABCDE##
    String code;
    //int num; 
    System.out.println("Input Course: ");
    course = keyboard.next();
    System.out.println(course);
    code = String.copyValueOf(course, 0, 4);
    System.out.println(code);       
   }    
}

当我使用字符数组而不是字符串时,我不知道应该如何让用户输入课程。简而言之,如何在字符数组上使用“扫描仪”?

指令是用户将输入格式为:ABCDE##的课程代码,然后程序必须将其拆分为课程名称和课程编号。因此,我不得不使用 copyValueOf 方法,但它似乎不起作用,因为从我在线阅读的所有文章中,他们使用了一个 char[] 数组,但用一些值初始化了该数组。所以我想知道如何在字符数组上使用扫描仪。

4

2 回答 2

3

为什么不从扫描仪中读取一个字符串然后调用String.toCharArray呢?甚至不清楚为什么在这里需要一个 char 数组......

于 2012-06-19T13:57:31.977 回答
1

为什么不直接用 读取字符串scanner.nextLine

import java.util.Scanner;
public class CourseSplitter {
public static void main(String args[]){
    Scanner keyboard = new Scanner(System.in);

    System.out.println("Input Course: ");
    String course = keyboard.nextLine();
    System.out.println(course);
    String code = course.substring(0, 5); //You put 4 but it left out the last letter in the course name. I changed it to 5 and it worked but I'm confused since the index always start with 0.
    System.out.println(code);    
    String num = course.substring(5, 6);
    System.out.println(num);   
   }    
}
于 2012-06-19T13:58:40.553 回答