如何仅使用正则表达式找到中间字符
例如,这显示了预期的输出
Hello
->l
world
->r
merged
-> rg
(偶数次见此)
hi
->hi
I
->I
我试过
(?<=\w+).(?=\w+)
正则表达式不能以您正在寻找的方式计算。这看起来像是正则表达式无法完成的事情。我建议编写代码来解决这个问题。
String str="Hello";
String mid="";
int len = str.length();
if(len%2==1)
mid= Character.toString(str.getCharAt(len/2));
else
mid= Character.toString(str.getChatAt(len/2))+ Character.toStringstr.getCharAt((len/2)-1));
这应该可以工作。
public static void main(String[] args) {
String s = "jogijogi";
int size = s.length() / 2;
String temp = "";
if (s.length() % 2 == 0) {
temp = s.substring(size - 1, (s.length() - size) + 1);
} else if (s.length() % 2 != 0) {
temp = s.substring(size, (s.length() - size));
} else {
temp = s.substring(1);
}
System.out.println(temp);
}