我有一个字符串,例如“x(10, 9, 8)”我想从字符串中读取每个整数,然后使用整数作为数组索引从数组中检索一个新整数并用这个值替换它。
我尝试过的所有方法似乎更适合将相同的东西应用于所有整数,或者只是检索整数然后失去对它们的跟踪。谁能告诉我最好的方法吗?
使用正则表达式,您可以“浏览”字符串中的每个数字,无论它们是如何分隔的,并根据需要替换它们。例如,下面的代码打印x(101, 99, 88)
:
public static void main(String[] args) {
int[] array = {0, 1, 2, 3, 4, 5, 6, 7, 88, 99, 101};
String s = "x(10, 9, 8)";
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(s);
StringBuilder replace = new StringBuilder();
int start = 0;
while(m.find()) {
//append the non-digit part first
replace.append(s.substring(start, m.start()));
start = m.end();
//parse the number and append the number in the array at that index
int index = Integer.parseInt(m.group());
replace.append(array[index]);
}
//append the end of the string
replace.append(s.substring(start, s.length()));
System.out.println(replace);
}
注意:您应该添加一些异常处理。
Integer.parseInt()
使用,String.split(",")
和String.indexOf()
(for the (
and )解析字符串的数字。用它们)
创建一个。List
遍历此列表并使用数组中的值创建一个新列表。
遍历新列表并创建响应字符串。