下面的方法能够解决问题
/*
* 若真实姓名为 张三
* 则返回 **三
*/
public static String realName(String realName){
if(realName == null) return null;
char[] charArray = realName.toCharArray();
return "**" + charArray[charArray.length - 1];
}
实现方式能不能用 replaceAll 的办法?
public static String realName(String realName){
if(realName == null) return null;
return realName.replaceAll("(\\w+)(\\w)", "**$2");
}
正则中 w 不支持中文。
1
v1024 2016-07-28 12:27:31 +08:00 via iPhone
JS :
"**" + "胡汉三".split("").pop() |
3
BuilderQiu 2016-07-28 12:44:02 +08:00 3
正则换成: ^.*(.)$
|
4
Zeahoo OP @BuilderQiu 成功了~感谢!
|
5
caixiexin 2016-07-28 12:50:21 +08:00
public static void main(String[] args) {
String name = "张三"; String name2 = name.replaceAll("([\\u4e00-\\u9fa5])([\\u4e00-\\u9fa5])","**$2"); System.out.println(name2); } |
7
Bryan0Z 2016-07-28 15:15:00 +08:00 via Android
为啥你写的这么烦
"**"+string.charAt(string.length()); 一行不就好了 |
8
xcodebuild 2016-07-28 15:24:49 +08:00
让前端隐藏是掩耳盗铃。。
|
9
icaca 2016-07-28 16:01:28 +08:00
select 的时候直接处理好
|
10
hoperuin 2016-07-28 16:28:08 +08:00 1
想不明白了,为什么要这么复杂呢?看下面 demo
public class Test { public static void main(String[] args) { String s = "哈哈张三我哈哈哈张三哦"; System.out.println(s.replaceAll("张三","**三")); } } 输出: 哈哈**三我哈哈哈**三哦 |
12
dullwit 2016-07-28 17:14:50 +08:00 3
看到 string 判断用 == null ,我心情就紧张起来了
|
14
Sunshow 2016-07-28 19:00:17 +08:00
别浪,踏踏实实用 StringUtils
|
15
Cabana 2016-07-28 19:31:33 +08:00 via Android
==null …你会吃亏的
|
19
bp0 2016-07-29 09:20:42 +08:00
考虑复姓的情况了吗? 欧阳三,应该换成“**三”,而不是“**阳三”吧?
|
20
thinkmore 2016-07-29 09:52:21 +08:00
占坑问问题!!
同问一个问题,我现在前台输入字符串,然后解析规则是:将逗号转义为\c ,然后将\转义成为\\,然后存入数据库。 此时如果我从数据库取出的数据是\\c ,如何将其转义为\, 如果前台输入的是\c 这种怎么办? 请问 java 或者 js 有什么好的方法吗? |
22
chocotan 2016-07-29 16:06:49 +08:00
[charArray.length - 1]
当传入的是""字符串的时候会抛异常 |
24
haniklz 2016-07-30 18:30:49 +08:00 via Android
难道不是替换人名中的姓?用正则表达式性能多低啊 直接 length 大于 1 时 返回 **+substring(1)不好么。
|