3

如何仅使用正则表达式找到中间字符

例如,这显示了预期的输出

Hello->l

world->r

merged-> rg(偶数次见此)

hi->hi

I->I

我试过

(?<=\w+).(?=\w+)
4

3 回答 3

5

正则表达式不能以您正在寻找的方式计算。这看起来像是正则表达式无法完成的事情。我建议编写代码来解决这个问题。

于 2013-06-26T06:45:29.460 回答
1
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));

这应该可以工作。

于 2013-06-26T06:47:43.490 回答
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);
    }
于 2013-06-26T06:55:04.313 回答