java怎么把字符串中最后出现的一段0-9的数字替换成某个字符
如str=“广州市46街道308号房”,把308用*替换掉,“46”不替换谢谢liu198661hf,不过用正则表达式的话,我这个方法为什么不行呢,结果变“广州市46街道...
如str=“广州市46街道308号房”,把308用*替换掉,“46”不替换
谢谢 liu198661hf,不过用正则表达式的话,我这个方法为什么不行呢,结果变“广州市46街道308号房*”了
public static void main(String[] args) {
StringBuffer str=new StringBuffer("广州市46街道308号房");
StringBuffer str1=str.reverse();
String s=str1.toString();
StringBuffer S=new StringBuffer(s.replaceFirst("[0-9]*", "*"));
System.out.println(S.reverse());
} 展开
谢谢 liu198661hf,不过用正则表达式的话,我这个方法为什么不行呢,结果变“广州市46街道308号房*”了
public static void main(String[] args) {
StringBuffer str=new StringBuffer("广州市46街道308号房");
StringBuffer str1=str.reverse();
String s=str1.toString();
StringBuffer S=new StringBuffer(s.replaceFirst("[0-9]*", "*"));
System.out.println(S.reverse());
} 展开
2个回答
展开全部
看你的字符串是不是会动态改变,根据具体情况,可以考虑用正则表达式
StringBuffer sb=new StringBuffer("广州市46街道308号房");
sb.reverse();
String s=sb.toString();
sb=new StringBuffer(s.replaceFirst("[0-9]+","*"));
sb.reverse();
s=sb.toString();
System.out.println(s);
正则表达式 [0-9]+ 用+不用*正常情况下至少有个数字吧,,*表示0个或多个,+表示至少一个
还有就是StringBuffer 的 reverse()方法返回的就是他对象本身,所以不用重新声明变量接收返回
StringBuffer sb=new StringBuffer("广州市46街道308号房");
sb.reverse();
String s=sb.toString();
sb=new StringBuffer(s.replaceFirst("[0-9]+","*"));
sb.reverse();
s=sb.toString();
System.out.println(s);
正则表达式 [0-9]+ 用+不用*正常情况下至少有个数字吧,,*表示0个或多个,+表示至少一个
还有就是StringBuffer 的 reverse()方法返回的就是他对象本身,所以不用重新声明变量接收返回
展开全部
public static void main(String[] args){
String str = "广州市46街道308号房";
char[] chars = str.toCharArray();
int beginOrEnd = 0;
for (int i = chars.length - 1; i >= 0; i--) {
if (chars[i] >= 48 && chars[i] <= 57) {
if (beginOrEnd == 0) {
beginOrEnd = 1;
}
chars[i] = '*';
} else {
if (beginOrEnd == 1) {
break;
}
}
}
str = new String(chars);
System.out.println(str);
}
String str = "广州市46街道308号房";
char[] chars = str.toCharArray();
int beginOrEnd = 0;
for (int i = chars.length - 1; i >= 0; i--) {
if (chars[i] >= 48 && chars[i] <= 57) {
if (beginOrEnd == 0) {
beginOrEnd = 1;
}
chars[i] = '*';
} else {
if (beginOrEnd == 1) {
break;
}
}
}
str = new String(chars);
System.out.println(str);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询