我有一个给定的字符串,表示年龄,格式为:
“YY 年 MM 月” 或
“Y 年 MM 月” 或
“YY 年月月” 或
“年月月”
其中 YY/Y 代表年份(例如:5 或 44),MM/M 代表月份(例如:2 或 11)。为了清楚起见,我给出了 String pAge = "11 yr 5 mo"或 String pAge = "4 yr 10 mo"的示例。
现在我想分割这个字符串,并将其仅作为数字打印在两个单独的文本字段中,代表年龄和月份。
为了获得多年的时间,我编写了一个函数:
String arr[] = pAge.split(" ", 2);
return arr[0];
另一个获取月份的函数:
int i = pAge.indexOf("yr", pAge.indexOf(" ") + 1);
int k = pAge.indexOf(" ", pAge.indexOf(" ") + 4);
String s = pAge.substring(i, k);
return s.substring(s.lastIndexOf(" ") + 1);
所以,第一个方法看起来不错而且很简单,但是有没有更简单的方法来编写第二个函数?两者都工作良好并给出了正确的输出。
最佳答案
您给出的4个案例都是相同。它们全部由 4 个部分组成,并以空格分隔。
这意味着您可以对所有 4 种情况使用 .split()
:
String[] tokens = pAge.split(" ");
int years = Integer.parseInt(tokens[0]); //get first token
int months = Integer.parseInt(tokens[2]); //get third token
关于java - Java中拆分更复杂的字符串来获取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41085900/