通过格式化文件进行Java输入
我需要从格式文件中获取输入 二, (3,4) (5,6) 3. (6,5)(7,8)通过格式化文件进行Java输入,java,parsing,Java,Parsing,我需要从格式文件中获取输入 二, (3,4) (5,6) 3. (6,5)(7,8) 如果我只想将整数值存储在某个变量中,我不想使用括号和逗号,那么如何使用模式匹配来获得它呢?您可以使用String#replaceAll([^0-9]”,“)删除任何非数字字符和integer.valueOf(String)获取整数。您可以使用直接从文件中读取整数,并使用指定分隔符,其中分隔符将是正则表达式(“[,()]{1,}”)。Scanner方法hasNextInt()和nextInt()可用于读取整数。我
如果我只想将整数值存储在某个变量中,我不想使用括号和逗号,那么如何使用模式匹配来获得它呢?您可以使用
String#replaceAll([^0-9]”,“)
删除任何非数字字符和integer.valueOf(String)
获取整数。您可以使用直接从文件中读取整数,并使用指定分隔符,其中分隔符将是正则表达式(“[,()]{1,}”
)。Scanner
方法hasNextInt()
和nextInt()
可用于读取整数。我更喜欢字符串方法split,它允许使用正则表达式。假设您已实例化名为contents of type ArrayList的实例变量,下面是为文件中的每一行输入运行的一些示例代码:
split方法创建一些额外的(空)标记,try/catch会消除这些标记。希望这有帮助。你知道正则表达式吗?这应该是开始的地方。哪个整数?括号内的那些?所有的整数括号外的和括号内的。但是我要所有的整数分开,将它们存储在integers@Manas请举例说明您希望从该示例输入中获得什么样的输出。我想从这些整数执行其他操作,因此我只希望将单个整数存储在数组中。您能否帮助我使用第一行中的类似2的模式,然后是(3,4)(5,6)在下一行中,下一行和最后一行中的3有(6,5)(7,8)。hmjd-我尝试了你的方法,我可以得到括号内的整数,但不能得到括号外的整数(第一行中的2,然后下一行中的(3,4)(5,6),然后下一行和最后一行中的3有(6,5)(7,8)),在上述情况下,我不能得到2和3
public void readLine(String line) {
String delimiters = "[ ,()]+"; // regular expression
String[] tokens = line.split(delimiters);
for (String token : tokens) {
try {
Integer i = Integer.parseInt(token); // convert String to Integer
contents.add(i);
} catch (NumberFormatException e) {
// TODO: handle exception
}
}
}