冒号之前的字符串的一部分,然后使用扫描仪冒号后的部分

时间:2016-04-10 16:48:48

标签: java regex string hashmap java.util.scanner

与标题一样,是否可以在冒号之前读取部分字符串,然后使用扫描程序在冒号后读取其余字符串?

如果你有一个字符串:

"AA:BigHouseOnTheBeach"

我可以将第一部分"AA"存储在单独的字符串中,将"BigHouseOnTheBeach"存储在第二个单独的字符串中吗?

这是我的代码:

public NumberPlates() {
    // opg 2a) initialiser districtMap
    districtMap = new HashMap<String, String>();
    readFile();
}

public void readFile() {
    file = new File("src/opg2_numberplates/Nummerplader.txt");

    try {
        Scanner reader = new Scanner(file);

        if (reader.hasNext()) {
            kb = reader.next();
            pk = reader.next();
            districtMap.put(kb, pk);
        }

    } catch (NullPointerException ex) {
        System.out.println("Null pointer");

    } catch (FileNotFoundException ex) {
        System.out.println("File not found");
    }
}

目前,它会将"AA:BigHouseOnTheBeach""AB:SmallHouseOnTheBeach"作为键和值放入我的地图中。我想将"AA"作为键,将"BigHouseOnTheBeach"作为值。

2 个答案:

答案 0 :(得分:1)

您可以使用setDelimiter(String regex)的{​​{1}}方法:

Scanner

输出:

  

&#34;你好&#34;
  &#34;有&#34!;

如果您不希望第二个字符串包含Scanner scan = new Scanner("Hello: There!"); scan.useDelimiter(":"); System.out.println(scan.next()); System.out.println(scan.next()); 之后的空格,请更改为:

":"

答案 1 :(得分:0)

您可以使用String split方法根据分隔符拆分字符串。以下是代码。

if (reader.hasNext()) {
        String input = reader.next();
        String[] parts = input.split(":");
        kb = parts[0];
        pk = parts[1];
        districtMap.put(kb, pk);
    }