黑马程序员技术交流社区

标题: 一道Java笔试题 [打印本页]

作者: 智远    时间: 2015-4-13 17:37
标题: 一道Java笔试题
将String  str=“12,5,0,0.1,100,236,102,0”中值等于0的数去掉,100这样的数保留,再将剩余的数一个一个打印出来。效果是这样:12  5  0.1  100  236  102
如果用到正则,请详细注释一下,本人对正则并不熟。。。,,想找下思路。最好能提供关键代码。谢啦!!!

作者: 于先森    时间: 2015-4-13 19:25
利用字符串split函数(正则表达式)把字符串分割成字符数组,在遍历 就可以了
作者: 君嘘    时间: 2015-4-13 19:46
2L正解
把逗号作为分割符切割字符串存入数组,然后遍历
作者: Sylvanas    时间: 2015-4-13 20:03
str.split(",")弄成一个String数组,在挨个用Integer.parseInt,等于0的再去掉呗
作者: 智远    时间: 2015-4-13 22:22
于先森 发表于 2015-4-13 19:25
利用字符串split函数(正则表达式)把字符串分割成字符数组,在遍历 就可以了 ...

正则一直写不出来,能否提示下?
作者: 于先森    时间: 2015-4-13 22:31
智远 发表于 2015-4-13 22:22
正则一直写不出来,能否提示下?

str.split(",")
作者: Himoriarty    时间: 2015-4-13 22:32
这个是哪个章节的内容
作者: 智远    时间: 2015-4-13 22:36
于先森 发表于 2015-4-13 22:31
str.split(",")

这样只能切割成数组,怎么把零一起去掉?我用正则一直把0.1的0给去掉
作者: 刚起步的小马驹    时间: 2015-4-13 22:46
还没学到,表示不懂
作者: 燕赵之风    时间: 2015-4-13 23:19
String str1="12,5,0,0.1,100,236,102,0";
StringBuilder sb=new StringBuilder();

String[] strs=str1.split(",");

for(String str:strs)
{
     if(str.equals("0"))
            continue;
     sb.append(str+",");
/*
     //或者用这种方法
    float num=Float.parseFloat(str);    //因为所要操作的字符串中有小数。
    if(num==0)
        continue;
*/
}
String newStr=sb.subString(0,sb.length()-1);
System.out.println(newStr);






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2