我的java学习-正则表达式/数组

刚刚开始对java重新有了学习的动力,学习不能停止,我发现还是不停的学习加解题加上敲代码的方法,才能够加强自己对知识点的印象,记忆更深刻。这是我在csdn的第一篇微博。
今天在网上看到有朋友在请教问题,尝试解答一下,发现自己竟然一时卡顿写不出代码来,很慌,原来自己对这些代码的熟悉程度还是太低没记性,于是重新找资料,题目想办法解答一下。
1、正则表达式的问题

public static void main(String args[]) {
System.out.print(listHas("user_name"));
}
 
private static boolean listHas(String content) {
String pattern = "user_name12345";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(content);
return m.matches();   //这个出来的结果始终是false,不论里面参数用“user”还是“user_name”编程的思想偏差导致
}

上面这个代码是想用listHas()方法实现字符串包容的判断问题,是对正则表达式理解的偏差导致的,在CSDN里面查找了资料有高手已经详细解答了正则表达式,于是改写代码

public static void main(String args[]) {
System.out.print(listMatch("user_nnnnname"));
}
 
private static boolean listMatch(String content) {
String pattern = "user_n*ame";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(content);
return m.matches();    //当content符合pattern的字符串规则时候,出来的结果是true
}

这个代码就体现了一定的正则表达式的使用方法,那就是在pattern里面写下的是字符串规则,content里面内容使用matcher()方法就是看是不是符合pattern里面的规则。同样的道理还有下面的代码,我看到的是java中的regex
2017年03月26日 13:59:39 qhj1610原创文章,转载请注https://blog.csdn.net/qhj1610/article/details/66475130

String regex1="[0-9]{9}@qq.com"; //qq邮箱的匹配
String s1="[email protected]";
System.out.println(s1.matches(regex1));    //符合上面的规则,结果true

果然CSDN里面高手还是很多哈。

2、二维数组的问题
本来想着数组问题是很简单,代码应该不难想,结果居然1个小时也没想通透,果断看书找资料。这个是数据结构方面的内容,在书里面找到相关的参考。终于完成了二维数组的基本操作查找findData()方法实现。书和高手都是Java编程必不可少的法宝啊。

import java.util.Random;
 
class Matrix{
    private int[][] data;                    //类变量的设计,居然很长时间才想好怎么设计类变量
    private int sizem, sizen;
     
    public Matrix(int sizem, int sizen){             //类变量的设计和初始化方法卡住我了,原因就是知识点不熟悉
       this.sizem = sizem; this.sizen = sizen;
       data = new int[sizem][sizen];
    }
     
    public void setData(){        //用random产生随机数字的方式填充数组的各个元素
        Random rand = new Random();
         for(int i = 0; i < sizem; i++){
             for(int j = 0; j < sizen; j++){
                data[i][j] = rand.nextInt(1000);
             }             
         }
    }
     
    public void showData(){        //显示数组全部的变量
        for(int i = 0; i < sizem; i++){
             for(int j = 0; j < sizen; j++){
                System.out.print(data[i][j] + "   ");
             }  
             System.out.println(" ");
         }
    }
     
    public boolean findData(int num){
        boolean find = false;
        for(int i = 0; i < sizem; i++){
            for(int j = 0; j < sizen; j++){
                if(data[i][j]  == num){                    //关键地方,这个判断是有没有找到的关键
                    System.out.println("在数组里找到数字!data[]" + i + " []" + j );   
                    find = true;
                } else
                    System.out.println("没有找到");
            }
        }
        return find;
    }    
}
 public class Test{       //设计好上面的各种方法,下面的Test非常简单就写完成
     public static void main(String[] args){
         int findnum = 35;
         Matrix matrix = new Matrix(30, 40);
         matrix.setData();
         matrix.showData();
         System.out.println(" ");
         System.out.println(matrix.findData(findnum)); 
     }
 }

猜你喜欢

转载自blog.csdn.net/qq_43399072/article/details/83033721
今日推荐