首页
学习
活动
专区
圈层
工具
发布

读卡器
EN

Stack Overflow用户
提问于 2014-12-10 01:33:03
回答 2查看 749关注 0票数 0

我需要一些重要的帮助。我不知道该去哪儿。我完全没有深度了。

我需要从输入文件中读取一张牌号列表中的格式排名。

有效军衔为: 2-10,J,Q,K,A(小丑,王后,国王,Ace)

有效套间为: C,D,H,S(球杆,钻石,红心,黑桃)

然后,我需要将它们输出到一个文件中,以便输入文件具有2-c,然后程序将写入输出文件:

两个俱乐部-价值=2

我几乎已经选择了输入文件(我将在下面发布代码),但我不知道该做什么。我想我需要使用.nextline()来阅读每一行,但我不知道如何做到这一点。有人能帮忙吗?

代码语言:javascript
复制
 public class CardTest {
 Scanner input = new Scanner(System.in);

 public static void main(String[] args) 
 {
  inputFile(); 
 }

 public static void inputFile ()
 {
   JFileChooser chooser = new JFileChooser();
   Scanner in = null; 
   Scanner console; 

   try {
   if (chooser.showOpenDialog(null) == JFileChooser.CANCEL_OPTION)
   {
       System.exit(0); 
   }
   if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
   {
       File selectedFile = chooser.getSelectedFile(); 
       in = new Scanner(selectedFile); 

   }
   }
   catch (FileNotFoundException e) 
   {
       JOptionPane.showMessageDialog(null, "Could not find the file, please type the file name into dialog box");
       System.out.println("Type in your input file"); 
       console = new Scanner(System.in);
       String selectedFile = console.next(); 
       in = new Scanner(selectedFile); 

   }
   in.close(); 
 }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-10 01:46:56

你可以采用传统的String#replace方式。下面的例子。

代码语言:javascript
复制
File file = ...;
try {
    Scanner scanner = new Scanner(file);
    while(scanner.hasNextLine()) {
        String line = scanner.nextLine();
        String[] values = line.split("-");
        String rank = values[0].replace("[", "").trim();
        String suite = values[1].replace("]", "").trim();
        System.out.println(rank + " of " + suite + " - Value = " + rank); // *****
    }
} catch (Exception e) {
    e.printStackTrace();
}

输入:

代码语言:javascript
复制
[2-C]

输出:

代码语言:javascript
复制
2 of C - Value = 2

您可以并且应该根据您的喜好修改println函数。

票数 1
EN

Stack Overflow用户

发布于 2014-12-10 01:46:04

这里有许多关于如何读取文件的问题/答案。为了解决你的整个问题,我会把它分解成以下步骤。此外,大多数技术细节可以通过在因特网上搜索来解决。

  1. 逐行读取文件。请参阅:https://stackoverflow.com/a/4716623/1688441
  2. 您需要解析每一行。如果您按照1中的链接,逻辑上每一行将是一个字符串。您可以使用正则表达式,也可以只使用拆分方法,以便将字符串拆分为由2个元素组成的数组。用“-”字。例子:String elements[] = line.substring(1,line.length()-1).split("-").
  3. 现在,您将有一个由2个元素组成的数组,其中第一个元素为rank,第二个元素为suit
  4. 您需要有一个查找表(例如使用HashMap),该表将简短的缩写转换为实际的文本描述。这个映射可能是一个类变量(C全局等效),您应该在开始时初始化它。
  5. 创建一个方法,该方法接受2元素数组,将其转换为文本描述语句,并将其写入文件。

如果您遵循上述五个步骤,这是解决问题的一个很好的路线图。

当你陷入困境时,就在谷歌上搜索一下,例如:

  • http://goo.gl/mtHLn0
  • http://goo.gl/qaQ1TQ

最后的想法:

给一个人一条鱼,你就喂他一天;教一个人钓鱼,你就给他一辈子的食物。

-Maimonides

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27391971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档