Java 1.6中的字符串操作

时间:2018-10-23 13:08:36

标签: java java-6

字符串可以如下所示。使用java1.6

String example = "<number>;<name-value>;<name-value>";

String abc = "+17005554141;qwq=1234;ddd=ewew;otg=383";
String abc = "+17005554141;qwq=123454";
String abc = "+17005554141";

我想从字符串中删除qwq=1234qwq是固定的,其值可以VARY,例如ex 1234或12345等

预期结果:

String abc = "+17005554141;ddd=ewew;otg=383";
String abc = "+17005554141"; \\removed ;qwq=123454
String abc = "+17005554141";

我尝试了

abc = abc.replaceAll(";qwq=.*;", ""); 

但不起作用。

7 个答案:

答案 0 :(得分:2)

我想到了这个qwq=\d*\;?,它可以正常工作。它匹配qwq=之后的0个或更多小数。它还有一个可选参数;,因为您的示例似乎包括该参数并不总是附加在数字之后。

我知道问题不是关于javascript的,但是在下面的示例中,您可以看到regex起作用:

const regex = /qwq=\d*\;?/g;
var items = ["+17005554141;qwq=123454",
            "+17005554141",
            "+17005554141;qwq=1234;ddd=ewew;otg=383"];

for(let i = 0; i < items.length; i++) {
  console.log("Item before replace: " + items[i]);
  console.log("Item after replace: " + items[i].replace(regex, "") + "\n\n");
}

答案 1 :(得分:2)

您可以使用正则表达式删除此类字符串。使用此代码,

String example = "+17005554141;qwq=1234;ddd=ewew;otg=383";
System.out.println("Before: " + example);
System.out.println("After: " + example.replaceAll("qwq=\\d+;?", ""));

这将提供以下输出,

Before: +17005554141;qwq=1234;ddd=ewew;otg=383
After: +17005554141;ddd=ewew;otg=383

答案 2 :(得分:1)

.*适用于多字符,不限于数字。使用仅适用于数字串的内容

abc.replaceAll(";qwq=\\d+", "")
                      ^^
                      Any Number  

答案 3 :(得分:1)

请尝试

abc = abc.replaceAll("qwq=[0-9]*;", "");

答案 4 :(得分:0)

如果您不太在意便利,则可以通过简单的String操作(indexOfreplacesubstring)来实现。这也许是执行此操作最传统的方法:

private static String replaceQWQ(String target)
{
    if (target.indexOf("qwq=") != -1) {
        if (target.indexOf(';', target.indexOf("qwq=")) != -1) {
            String replace =
                target.substring(target.indexOf("qwq="), target.indexOf(';', target.indexOf("qwq=")) + 1);
            target = target.replace(replace, "");
        } else {
            target = target.substring(0, target.indexOf("qwq=") - 1);
        }
    }
    return target;
}

小测试:

String abc = "+17005554141;qwq=1234;ddd=ewew;otg=383";
String def = "+17005554141;qwq=1234";

System.out.println(replaceQWQ(abc));
System.out.println(replaceQWQ(def));

输出:

+17005554141;ddd=ewew;otg=383
+17005554141

答案 5 :(得分:0)

另一个:

abc.replaceAll(";qwq=[^;]*;", ";");

答案 6 :(得分:0)

您必须在replaceAll方法中使用组。

这里是一个例子:

abc.replaceAll("(.*;)(qwq=\\d*;)(.*)", "$1$3");

有关您可以在以下位置找到的网上论坛的更多信息:http://www.vogella.com/tutorials/JavaRegularExpressions/article.html