与标题一样,是否可以在冒号之前读取部分字符串,然后使用扫描程序在冒号后读取其余字符串?
如果你有一个字符串:
"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"
作为值。
答案 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);
}