从相反方向将字符串拆分为具有 .replaceAll 函数的部分? JAVA
Splitting string into parts with .replaceAll function from opposite direction? JAVA
假设我在 JAVA 中有以下字符串:
str = "B49FD7FD96B"
我可以通过执行以下操作将此字符串更改为 B49F D7FD 96B
:
str = str.replaceAll("....", "[=12=] ");
但是我怎样才能把我的字符串改成这样呢??? B49 FD7F D96B
所以在某种程度上我实际上需要从相反的方向使用函数 .ReplaceAll()。或者这对 .ReplaceAll() 是不可能的,我需要使用其他东西吗?如果是这样,最好的方法是什么?
您使用 replaceAll
有什么原因吗? (您似乎也在使用正则表达式)
为什么不简单地使用 for 循环来获得所需的输出?
如果你想使用现有的,你可以试试:
str = str.substring(0, 3) + " " + str.substring(3).replaceAll("....", "[=10=] ");
如果你想用 replaceAll
"the other way," 把它分成 4 组,剩下的放在开头而不是结尾,你可以只反转字符串,这样做,然后反转它再次:
str = "B49FD7FD96B";
str = new StringBuilder(str).reverse().toString();
str = str.replaceAll("....", "[=10=] ");
str = new StringBuilder(str).reverse().toString();
结果:"B49 FD7F D96B"
这个较长,但不使用正则表达式:
String groupInFours(String s) {
int index = s.length() % 4;
StringBuilder sb = new StringBuilder();
if (index > 0) {
sb.append(s.substring(0, index));
}
for (; index < s.length(); index += 4) {
if (sb.length() > 0) {
sb.append(" ");
}
sb.append(s.substring(index, index+4));
}
return sb.toString();
}
创建一个 StringBuilder 并添加任何不是四的倍数的初始字符组,然后为字符串的其余部分添加四组字符,必要时在前面加上空格。
假设我在 JAVA 中有以下字符串:
str = "B49FD7FD96B"
我可以通过执行以下操作将此字符串更改为 B49F D7FD 96B
:
str = str.replaceAll("....", "[=12=] ");
但是我怎样才能把我的字符串改成这样呢??? B49 FD7F D96B
所以在某种程度上我实际上需要从相反的方向使用函数 .ReplaceAll()。或者这对 .ReplaceAll() 是不可能的,我需要使用其他东西吗?如果是这样,最好的方法是什么?
您使用 replaceAll
有什么原因吗? (您似乎也在使用正则表达式)
为什么不简单地使用 for 循环来获得所需的输出?
如果你想使用现有的,你可以试试:
str = str.substring(0, 3) + " " + str.substring(3).replaceAll("....", "[=10=] ");
如果你想用 replaceAll
"the other way," 把它分成 4 组,剩下的放在开头而不是结尾,你可以只反转字符串,这样做,然后反转它再次:
str = "B49FD7FD96B";
str = new StringBuilder(str).reverse().toString();
str = str.replaceAll("....", "[=10=] ");
str = new StringBuilder(str).reverse().toString();
结果:"B49 FD7F D96B"
这个较长,但不使用正则表达式:
String groupInFours(String s) {
int index = s.length() % 4;
StringBuilder sb = new StringBuilder();
if (index > 0) {
sb.append(s.substring(0, index));
}
for (; index < s.length(); index += 4) {
if (sb.length() > 0) {
sb.append(" ");
}
sb.append(s.substring(index, index+4));
}
return sb.toString();
}
创建一个 StringBuilder 并添加任何不是四的倍数的初始字符组,然后为字符串的其余部分添加四组字符,必要时在前面加上空格。