java - java修改字符串

标签 java string

我必须通过 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/

相关文章:

java - Server和Client之间的同步时钟

java - 是否可以在ListView中添加TreeView

java - 特定查询直接运行良好,或者对其进行任何更改但在当前状态下运行时间更长

string - Fortran:在主程序中初始化长度未知的字符串

c++ - std::stringstream 错误?

python - 将特定模式与正则表达式匹配

Java 跨多次执行的计划任务

java - 在 QueryDSL 分组转换器中计数

ruby - 将空字符串就地转换为 nil?

c - 如何用 C 语言打开 Xcode 中的现有文件?