作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想制作一个java程序,它将获取用户输入的一部分并将其存储起来以便以后使用。我的输入看起来像这样:
Mary market 8 theatre 80 end
John books 45 end
第一个字段表示该人的姓名,然后是一系列费用以及他们捐钱的原因名称。单词结束表示每个人的输入结束。
我的问题是如何将人们的姓名字段及其支出分开,以便我可以输出每个人的平均支出?
最佳答案
这实际上取决于,如果您严格同意输入数据始终具有与示例中相同的格式,那么您可以简单地使用字符串 .split("")
并读取所有内容每行的数字。
示例:
// or any other input, eg: List, BufferedReader, etc
String[] lines = new String[] {
"Mary market 8 theatre 80 end",
"John books 45 end"
};
for (String line : lines) {
String[] raw = line.split(" ");
String name = raw[0];
for (int i = 1; i < raw.length; i += 2) {
if (raw[i].equals("end")) break;
String expenseName = raw[i];
int cost = Integer.parseInt(raw[i+1]);
...
}
}
但如果不是,那么最好使用 RegExp
并查找每行中的所有数字。
示例:
// or any other input, eg: List, BufferedReader, etc
String[] lines = new String[] {
"Mary market 8 theatre 80 end",
"John books 45 end"
};
Pattern p = Pattern.compile("\\d+");
for (String line : lines) {
Matcher m = p.matcher(line);
while(m.find()) {
int cost = Integer.parseInt(m.group());
...
}
}
关于java - 如何在Java中获取部分用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61225084/
我是一名优秀的程序员,十分优秀!