2014-10-05 45 views
0

我有一个是奠定了这样一个文本文件:提取内容的Java

57363 Joy Ryder D D C P H H C D 
72992 Laura Norder H H H D D H H H 
71258 Eileen Over C F C D C C C P 
70541 Ben Dover F F F P C C C F 
46485 Justin Time F C F C D P D H 
61391 Anna Conda D D F D D F D D 
88985 Bob Down P F P F P F P P 

,我有下面的代码读取这样的:

Scanner keyboard = new Scanner(System.in); 
     System.out.println("Filename: "); 
     // C:\\Users\\Vick\\PT\\accountFilesDemo_17259747\\src\\accountFilesDemo_17259747\\Grades.txt 
     String filename = keyboard.nextLine(); 

     File myfile = new File(filename); 

     try { 
      Scanner inputFile = new Scanner(myfile); 
      while(inputFile.hasNext()) 
      { 
       String str = inputFile.nextLine(); 
       System.out.println(str); 
      } 
      inputFile.close(); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

现在我想知道如何获得前5位数的学生ID并将它们存储在某个地方,然后在学生名字后输入8个字母,即DDCPHHCD,我怎么把这些放在某个地方来保存1-8的值,然后我需要把它们加起来,做一些数学来获得总数,然后我怎么写这两个学生ID nd总到单独的文本文件?

回答

-1

您可以使用扫描仪分隔单个行的标记。

String str = "57363 Joy Ryder D D C P H H C D"; 

    Scanner tokens = new Scanner(str); 

    String studentID = tokens.next(); 

    String name = tokens.next(); 

    String surname = tokens.next(); 

    String letters = ""; 

    while(tokens.hasNext()) 
    { 
     letters = letters + tokens.next() + " "; 
    } 

    System.out.println("ID = " + studentID + 
         "\nNAME = " + name + 
         "\nSURNAME = " + surname + 
         "\nLETTERS = "+ letters); 
+0

这就是我正在寻找和有问题,现在我会弄清楚如何自己使用其余的。我在各地搜索了一个例子,因为我从例子中学习和学习,纯粹的理论和文本很难解构,但是谢谢 – 2014-10-05 01:34:14

+0

*“......纯理论和文本很难解构”* - 我强烈建议你**尝试做一些关于**的事情。如果你只能从例子中学习,那么:1)你会因为例子的存在而受到限制。当你做更复杂/更高级的工作时,你会用尽实例...以及愿意为你写作的人。 2)以我的经验,从例子中学习往往很浅。你学会做什么,但不知道为什么。而“为什么”通常非常重要。 – 2014-10-23 03:34:31

+0

这就是为什么我*试图*避免勺子喂养解决方案(例子)给正在学习编程的人。如果你必须努力学习,你会学到更多,更深入。 – 2014-10-23 03:38:31

0

提示:

  1. 使用Scanner分手各行成的组件。

  2. 创建一个类来保存每一行中的信息。

  3. 如果事先知道数组中将存在多少个元素,并使用列表(例如ArrayList)(如果不知道),则使用数组。

  4. 一旦你填充了数据结构,那么做算术和打印结果就是简单的编程。

这些提示可以回答大部分问题。但我不会为你编写功课。

+0

1.如何使用扫描仪打破行成我需要什么成分? – 2014-10-05 01:26:06

+0

你是什么意思创建一个类来保存信息?至于数组列表将使用向量更容易? – 2014-10-05 01:26:36

+0

1)阅读'Scanner'类的javadoc。 2)你知道什么是班级吗?你知道如何声明字段,构造函数,方法吗? 3)'Vector'和'ArrayList' API几乎是相同的,但是'ArrayLists'由于其他原因(在这里不相关...)是可取的。 – 2014-10-05 02:23:25

0

如何:

String str = "57363 Joy Ryder D D C P H H C D"; 
String[] items = str.split(" ");