刚刚开始对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()方法实现字符串包容的判断问题,是对正则表达式理解的偏差导致的,在优快云里面查找了资料有高手已经详细解答了正则表达式,于是改写代码
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.youkuaiyun.com/qhj1610/article/details/66475130
String regex1="[0-9]{9}@qq.com"; //qq邮箱的匹配
String s1="123456789@qq.com";
System.out.println(s1.matches(regex1)); //符合上面的规则,结果true
果然优快云里面高手还是很多哈。
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));
}
}