一个串,里面含有一些"Hello",我想把非Hello的部分都换成?,这个怎么做呢?
"d293kdHello03kjdHello<?$fjwHello--+" -> "??????Hello?????Hello??????Hello???"
谢谢大家。
"d293kdHello03kjdHello<?$fjwHello--+" -> "??????Hello?????Hello??????Hello???"
谢谢大家。
replace 不可以么?
replace 不可以么?
就先给你说1中比较简单的吧。
方法1:
循环检测 字符串
每当indexOf的时候,字符串中出现的“hellow”的时候 。记录他的hellow 的开始位置以及结束位置 然后把这个位置之前的所有内容替换成? 然后将从刚才记录的结束位置在开始查询。方法2:
通过 字符串的split(regex) 切割Hellow 然后进行替换 和 连接 就ok了。方法太多了。。自己先试验下这两种吧。。
譬如正则也不错 有时间自己多看看吧。
正则虽然可以做。但是并不能完全自己处理。
因为正则式进行 字符串相似匹配。 也就是说。相似的。才可以替换。所以并不能一步就可以解决。还得借助于string的某些特定的方法才成
明白?
String temp = "d293kdHello03kjdHello <?$fjwHello--+";
String res = temp.replaceAll("[^(Hello)]", "?");
System.out.println(res);
这样是不行的,用String temp = "Hd293kdHello03kjdHello <?$fjwHello--+";试一下就知道了。[^(Hello)]匹配所有非H,e,l,l,o的字符。但是不能匹配非Hello的字符。正则表达式直接到不到非某个单词这个效果,还是需要自己处理。
来这里。帮我看下。
他的问题已经解决了
http://topic.csdn.net/u/20081016/14/636ef757-40ca-4165-b246-f0ec4a413ddc.html?1653316098
.replaceAll("[^@]", "?");
.replaceAll("@@@@@", "Hello");
String temp = "Hd293kdHello03kjdHello <?$fjwHello--+";
String[] res = temp.split("Hello");
String result="";
for(int i=0;i<res.length;i++){
for(int j=0;j<res[i].length();j++){
result+="?";
}
if(i<res.length-1)
result+="Hello";
}
System.out.println(result);
}