Java Scanner多分隔符

时间:2012-08-06 11:50:12

标签: java

我知道这是一个非常被问到的问题,但我无法找到并找到解决问题的答案。事情是我必须编程和应用程序,从这样的.TXT文件读取

Real:Atelti
Alcorcon:getafe 
Barcelona:Sporting

我的问题是如何告诉Java我之前需要String:在一个ArrayList和Strings之后:在另一个ArrayList中?我猜它使用了分米方法,但我不知道在这种情况下如何使用它。

抱歉我的英语很差,我猜想我会改进它。感谢

5 个答案:

答案 0 :(得分:1)

使用java的split函数。

步骤进行:

  1. 声明两个arrayList。 l1和l2;
  2. 阅读每一行。
  3. 用“:”分隔每一行,这将返回一个长度为2的数组,数组。 (根据您的意见)
  4. l1.add(array [0]),l2.add(array 1
  5. 尝试自己,如果需要帮助,请发布代码:)

    检查here是否使用了分割功能,但通过谷歌可以找到许多不同的例子

答案 1 :(得分:1)

使用“:”作为分隔符拆分字符串。将结果中的奇数条目添加到一个列表中,甚至添加到另一个列表中。

答案 2 :(得分:1)

如果你的文字是这样的:

真实:Atelti

Alcorcon:getafe

巴塞罗那:运动

您可以使用以下方式实现目标:

StringBuilder text = new StringBuilder();
Scanner scanner = new Scanner(new FileInputStream(fFileName), encoding); //try utf8 or utf-8 for 'encoding'
try {
  while (scanner.hasNextLine()){
    String line = scanner.nextLine();
    String before = line.split(":")[0];
    String after = line.split(":")[1];
    //dsw 'before' and 'after' - add them to lists.
  }
}
finally{
  scanner.close();
}

答案 3 :(得分:0)

        Scanner scanner = new Scanner(new FileInputStream("YOUR_FILE_PATH"));
        List<String> firstList = new ArrayList<String>();
        List<String> secondList = new ArrayList<String>();
        while(scanner.hasNextLine()) {
            String currentLine = scanner.nextLine();
            String[] tokenizedString = currentLine.split(":");
            firstList.add(tokenizedString[0]);
            secondList.add(tokenizedString[1]);
        }
              scanner.close();

枚举firstList和secondList将获得所需的结果。

答案 4 :(得分:0)

1。使用":"作为分隔符。

2。然后使用String[]功能将其存储在split()中。

3。尝试使用BufferedReader代替扫描程序。

<强>例如

File f = new File("d:\\Mytext.txt");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
ArrayList<String> s1 = new ArrayList<String>();
ArrayList<String> s2 = new ArrayList<String>();

  while ((br.readLine())!=null){

    String line = br.readLine();

    String bf = line.split(":")[0];
    String af = line.split(":")[1];

    s1.add(bf);
    s2.add(af);

  }