我很确定这与分隔符有关,而且我对 Java 还比较陌生,似乎找不到答案。我必须从名为“Simulation.Configuration”的文件中读取数据,其中包含以下数据:
dimensionX: 100
dimensionY: 100
numberOfMobileObjects: 5
durationOfSimulationTime: 10
WarningGeotask: 1, 3
WarningGeotask: 2, 3
CounterGeotask: 1, 3
PopuplationMonitoringGeotask: 2, 3, 3
我有一个扫描仪来读取数据并用它们做某些事情。我可以轻松地通过标签(dimensionX、dimensionY 等),但似乎无法获取数字。我已经尝试了很多使用分隔符来达到这些数字的方法,但似乎无法达到它们。我最近尝试过的一种方法是使用
scanner.useDelimiter("[ ,:]");
获取数据。当我这样做时,它会给我一个InputMismatchException。 这是我阅读文件的方式:
Scanner scanConfig = new Scanner(new File("Simulation.Configuration"));
scanConfig.useDelimiter("[ ,:]");
int dimensionX = 0;
int dimensionY = 0;
int numberOfMobileObjects = 0;
while(scanConfig.hasNextLine()){
String nextLabel = scanConfig.next();
if(nextLabel.equals("dimensionX")){
dimensionX = scanConfig.nextInt();
}
if(nextLabel.equals("dimensionY")){
dimensionY = scanConfig.nextInt();
}
if(nextLabel.equals("numberOfMobileObjects")){
numberOfMobileObjects = scanConfig.nextInt();
}
我查遍了一切,但找不到任何对我的情况有帮助的东西。任何关于这方面的提示都会很可爱。
最佳答案
regex您提供的分隔符并没有按照您的想法进行。我会采取 而是采用这种方法。
String input = scanner.nextLine();
String[] array = input.split(":");
String label = array[0];
String data = array[1];
String[] number = data.split(",");
Integer x = new Integer(number[0]);
关于java - 从文件读取数据时遇到问题 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21610021/