Java 从字符串中删除特定标记

Java 从字符串中删除特定标记,java,string,Java,String,我必须从字符串变量中删除特定的标记 例如: 如果字符串变量类似于“GUID+456709876790”,我需要从字符串中删除“GUID+”部分,只需要“456709876790” 如何做到这一点?有两种选择: 由于您只是从一开始就删除,因此可以非常轻松地使用子字符串: text = text.substring(5); // Or possibly more clearly... text = text.substring("GUID+".length()); 要删除字符串中的所有位置,只

我必须从字符串变量中删除特定的标记

例如: 如果字符串变量类似于
“GUID+456709876790”
,我需要从字符串中删除
“GUID+”
部分,只需要
“456709876790”

如何做到这一点?

有两种选择:

  • 由于您只是从一开始就删除,因此可以非常轻松地使用子字符串:

    text = text.substring(5);
    // Or possibly more clearly...
    text = text.substring("GUID+".length());
    
  • 要删除字符串中的所有位置,只需使用replace:

    text = text.replace("GUID+", "");
    
注意在后一种情况下使用
String.replace()
,而不是
String.replaceAll()
——后者使用正则表达式,这会影响
+

的含义,请尝试以下方法:

String s = "GUID+456709876790";
String token = "GUID+";
s = s.substring(s.indexOf(token) + token.length());
// or s = s.replace(token, "");
String a = "GUID+456709876790";
String s = a.replaceAll("\\D","");

我假设您只需要数字,因为我在这里使用regex来删除任何不是数字的东西

如果您使用的是
apache.commons.lang
库,您可以使用
StringUtils
只需执行以下操作:

StringUtils.remove(yourString, token);
这对我有用

String Line="test line 1234 abdc",aux;
token=new StringTokenizer(Line);

 while(token.hasMoreTokens())
   if(!("1234").equals(aux=token.nextToken())){ 
     new_line+= aux+" ";
     System.out.println("la nueva string es: "+ new_line);
   }

“GUID+456709876790”。子字符串(5)//应该这样做
,如果您不确定它是否在字符串的开头,
string.replace(“GUID+”,“”)
肯定会这样做。此外,如果令牌不总是在字符串中,Marko的解决方案是更好的我如何删除“+”和“+”之前的任何内容?
String Line="test line 1234 abdc",aux;
token=new StringTokenizer(Line);

 while(token.hasMoreTokens())
   if(!("1234").equals(aux=token.nextToken())){ 
     new_line+= aux+" ";
     System.out.println("la nueva string es: "+ new_line);
   }