如何将for循环中的条件i<9改进,使程序更灵活

不懂很聪明 2016-08-31 01:41:24


public static void main(String[] args) {
StringBuilder sb
= new StringBuilder("");
String str="abcd1234e56f7gh888";
//将字符串按非数字切割
String[] a=str.split("\\D");

for (int i= 0; i<9; i++) {
//如果不是空白就追加字符串
if(!a[i].matches("\\s")){
sb.append(a[i]);
}
// System.out.println(sb);
} System.out.println(sb);

}
...全文
168 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
HerveyHall 2016-09-02
  • 打赏
  • 举报
回复
引用 4 楼 hhv_01 的回复:
/**
 * 将下面字符串中的所有英文字符删除 <br>
 * String str = "abcd1234e56f7gh888";
 * 
 * @author <a href="http://www.herveyhall.cf">Hervey Hall</a>
 *
 */
public class Test {
	public static void main(String[] args) {
		String str = "abcd1234e56f7gh888";
		System.out.println(str.replaceAll("[a-z]", ""));
	}
}
第11行改成
System.out.println(str.replaceAll("[a-z]+", ""));
性能应该会更高
pourqoui 2016-08-31
  • 打赏
  • 举报
回复
第一次用“”替换掉字母a后,下次循环i=2取到的是c,b已经跳过了
hlfan2 2016-08-31
  • 打赏
  • 举报
回复

动手练了一下,菜鸟,不知道哪里出了问题,字母只删了一半,后面大牛们指教下
HerveyHall 2016-08-31
  • 打赏
  • 举报
回复
/**
 * 将下面字符串中的所有英文字符删除 <br>
 * String str = "abcd1234e56f7gh888";
 * 
 * @author <a href="http://www.herveyhall.cf">Hervey Hall</a>
 *
 */
public class Test {
	public static void main(String[] args) {
		String str = "abcd1234e56f7gh888";
		System.out.println(str.replaceAll("[a-z]", ""));
	}
}
静默QL 2016-08-31
  • 打赏
  • 举报
回复
public class Test{
	public static void main(String[] args){
		String str="abcd1234e56f7gh888";
		char[] c = str.toCharArray();
		System.out.println(c.length);
		for(int i=0;i<c.length;i++){
			if(c[i]<='9' && c[i]>='0'){
				c[i] = ' ';
			}
		}
		String str1 = new String(c);
		str1 = str1.replaceAll(" ","");
		System.out.println(str1);
	}
}

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧