我需要一些重要的帮助。我不知道去哪里。我完全脱离了我的深度。
我需要以[RANK - SUITE]格式从输入文件中读取播放卡代码列表。
有效排名为:2-10岁,J,Q,K,A(小丑,女王,国王,王牌)
有效套房包括:C,D,H,S(俱乐部,钻石,心形,黑桃)
然后我需要将它们输出到一个文件,因此输入文件将具有2-c然后程序将写入输出文件:
两个俱乐部 - 价值= 2
我几乎已经选择了输入文件(我将发布下面的代码),但我不知道该怎么做。我认为我需要使用.nextline()
来阅读每一行,但我不知道该怎么做。有人可以帮忙吗?
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();
}
答案 0 :(得分:1)
你可以采用传统的String#替换方式。示例如下。
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();
}
输入:
[2-C]
输出:
2 of C - Value = 2
您可以而且应该根据自己的喜好修改println功能。
答案 1 :(得分:0)
这里有很多关于如何阅读文件的问题/答案。 为了解决你的整个问题,我将其分解为以下步骤。此外,大多数技术细节都可以通过在互联网上搜索来解决。
String elements[] = line.substring(1,line.length()-1).split("-")
。rank
,第二个元素是suit
。如果您按照上述5个步骤操作,这是解决问题的良好路线图。
每当遇到问题时都会在Google上进行搜索,例如:
最后的想法:
给一个人一条鱼,你喂他一天;教一个男人钓鱼,你喂他一辈子。
-Maimonides