A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wsl123456 中级黑马   /  2016-6-30 09:09  /  636 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

创建ArrayList对象,添加成员,如"abcd3","abcde"等,
         * 代码实现方法体:public void deleteNum(ArrayList<String> list){...}。
         * 要求凡是成员中包含有数字(0~9)的均删除,如成员"abcd3"是需要删除的。

7 个回复

倒序浏览
只用正则,自己查资料搞定!
回复 使用道具 举报
貂裘换酒 发表于 2016-6-30 09:28
只用正则,自己查资料搞定!

public static void main(String[] args) {
                ArrayList<String> list = new ArrayList<>();
                list.add("abcd321");
                list.add("ab0cde");
                list.add("1ab2d3");
                list.add("bcd32");
                list.add("c0hdkf");
                list.add("chdkf");
                System.out.println(list);
                deleteNum(list);
                System.out.println(list);
        }

        public static void deleteNum(ArrayList<String> list) {
                for(int i = list.size() - 1;i >= 0;i--) {
                        if(list.get(i).contains("[0-9]")) {
                                list.remove(i);
                        }
回复 使用道具 举报
本帖最后由 wsl123456 于 2016-6-30 15:19 编辑
wsl123456 发表于 2016-6-30 15:11
public static void main(String[] args) {
                ArrayList list = new ArrayList();
                list.add("abcd321") ...

用正则做的,搞不定,不知道哪里出问题了
回复 使用道具 举报
貂裘换酒 发表于 2016-6-30 09:28
只用正则,自己查资料搞定!

用正则做的,搞不定,不知道哪里出问题了
回复 使用道具 举报
wsl123456 发表于 2016-6-30 15:13
用正则做的,搞不定,不知道哪里出问题了

if(list.get(i).contains("[0-9]")) {这一句不知道你什么意思?

list.get(i).macths("0-9")是判断字符串中是否全为数字
  下面我改了你的代码实现:

      ArrayList<String> list = new ArrayList<String>();
                list.add("abcd321");
                list.add("ab0cde");
                list.add("1ab2d3");
                list.add("bcd32");
                list.add("c0hdkf");
                list.add("chdkf");
                System.out.println(list);
                deleteNum(list);
                System.out.println(list);
        }

        public static void deleteNum(ArrayList<String> list) {
                for(int i = list.size() - 1;i >= 0;i--) {
                        Pattern p = Pattern.compile(".*\\d+.*");
                        Matcher m = p.matcher(list.get(i).toString());
                        if(m.matches()){
                                list.remove(i);
                                System.out.println("11");
                        }
}
        }
回复 使用道具 举报
wsl123456 发表于 2016-6-30 15:13
用正则做的,搞不定,不知道哪里出问题了

今天面试懵了,面试一个题目都没做出来,感觉饿好多东西还是要扎实才行!!
回复 使用道具 举报
貂裘换酒 发表于 2016-6-30 17:45
今天面试懵了,面试一个题目都没做出来,感觉饿好多东西还是要扎实才行!! ...

嗯嗯,加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马