
下面的方法能够解决问题
/* * 若真实姓名为 张三 * 则返回 **三 */ public static String realName(String realName){ if(realName == null) return null; char[] charArray = realNae.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 正则换成: ^.*(.)$ |
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 想不明白了,为什么要这么复杂呢?看下面 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 看到 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)不好么。 |