我必须通过 Java 将 String 类型修改的 xpathes 转换为真正的 xpathes;
例如;
这种xpathes
_HTML_1__BODY_1__FORM_1__INPUT_3_
应该转向
/HTML[1]/BODY[1]/FORM[1]/INPUT[3]
我不知道,你能帮帮我吗
最佳答案
正如 lateralus 所说,字符串是不可变的,因此您无法更改它们。
但是,话虽如此,您可以使用 replaceAll 返回字符串的修改版本,例如在这种情况下:
String input = "_HTML_1__BODY_1__FORM_1__INPUT_3_";
String output = input.replaceAll("_(\\d+)_", "[$1]").replaceAll("_", "/");
// output = /HTML[1]/BODY[1]/FORM[1]/INPUT[3]
编辑
关于本例中使用的正则表达式的解释:
此方法使用两个独立的正则表达式来返回修改后的字符串。首先,“_(\\d+)_
”,查找两个下划线字符_
包围的数字,\\d
是正则表达式的缩写任何数字的手。周围的括号 (...)
捕获数字,以便我们可以在替换字符串中引用它。
当我们进行第一次替换时,我们用[$1]
替换,这里的$1
指回第一个捕获的组,即捕获的数字,并将其包围在方括号 [...]
中。下划线也被删除,因为它们在表达式中被捕获,如果不在组中的话。
第二个 replaceAll
调用简单地将所有剩余的下划线字符替换为 /
。
关于java - java修改字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26297243/