hkh*_*114 2 java regex string android char
我有一个输入字符串,我想删除除特殊字符(十六进制字符)以外的所有字符!像这样 :
String SpecialChar = "0123456789ABCDEF" ; // Hex Char
String input = "abdf%$%23%&373D^!Bfg(g)*a" ;
Run Code Online (Sandbox Code Playgroud)
我想要低于输出,但我得到错误的价值......
String output = "abdf23373DBfgga" ;
Run Code Online (Sandbox Code Playgroud)
我写下面的方法,但它返回错误的值:
private String EliminateExtra(String str) {
String temp = str.toUpperCase();
for (int i = 0 ; i < temp.length() ; i++) {
char c = temp.charAt(i);
if(!isHexNum(c)) {
temp = temp.replaceAll(String.valueOf(c) , "");
}
}
return temp ;
}
private Boolean isHexNum(char c) {
char[] charArray = "0123456789ABCDEF".toCharArray();
for(int y=0 ; y<charArray.length ; y++) {
if(charArray[y]==c) {
return true ;
}
}
return false ;
}
Run Code Online (Sandbox Code Playgroud)
并称之为:
String Data = "aaaDffagDDSGw!$!@$3513rX12433r1ADSfX&)&*)%(%8u4w" ;
TextView tv = (TextView) findViewById(R.id.regex_textView1) ;
tv.setText("Original:" + "\n" + Data.toUpperCase() + "\n" + "Result: " + "\n" + EliminateExtra(Data));
Run Code Online (Sandbox Code Playgroud)
你可以简单地使用
private String EliminateExtra(String str) {
return str.replaceAll("[^a-fA-F0-9]","");
}
Run Code Online (Sandbox Code Playgroud)
replaceAll使用正则表达式来查找匹配并将其替换为其他内容.在这种情况下,它将尝试查找所有不在否定字符类中 描述的范围内的字符[^...],并用空字符串替换它们(这意味着它将它们删除).