发表于: 2017-11-30 23:24:52

1 623


今天完成的事情:终于理解了java 中只有值传递 

初步使用了一下 正则表达式 在代码里 判断匹配前端传来的数据 

只需要简单的几行

import java.util.regex.Matcher;
import java.util.regex.Pattern;
Pattern p = Pattern.compile("(\\d,)*[0-9]");
Matcher m = p.matcher("1,2,3,4");
boolean b = m.matches();

这是java.util.regex里面的方法  第一行是用来确定匹配规则

\d 匹配数字0-9 与[0-9]一样 只是\本身需要转义 \\ ()子域 加上了,

*代表重复0到n次 最后必须有一位 0-9的数字

Matcher 读取冲入的字符串 

matches方法 返回布尔 是否符合我们的匹配规则

学习了一下 对于取到的对象 调用方法后 需要判空 避免空指针异常

String test = "1,2,,,.kl;hg*13* ...,3";
char[] array = test.toCharArray();
List<String> strList = new ArrayList<>();

数组接字符串 需要先使用toCharArry方法转成 char数组

strList.add(Character.toString(array[i]));
////                  strList.add("" + array[i]);
//                strList.add(String.valueOf(array[i]));

然后实例化一个ArrayList 

然后可以char包装类的toString转化 在使用新建的list add

明天计划的事情:讲小课堂 

遇到的问题:正则表达式学过的都忘记了 只会几个简单的匹配

接收字符串转化数组 不知道有没有更简单的办法

收获:java的基础知识 

java只有值传递 

Java中所说的按引用传递实质上是传递该对象的地址,该地址其实是按值传递的,通过这个地址可以修改其指向内存处对象的值。改变该地址的值毫无意义,只会失去对真实对象的掌控。

String不可变StringBuffer可变的意思是堆区的那片内存的可变性。 
对于String类,通过引用无法修改之前在堆区申请的那段内存,大小是固定的,也就是不能修改他的值,因为他的底层是char数组。当再次给变量new一个值时,他会指向另一个堆区内存,从表面上看也是改变了值。 
对于StringBuffer,程序员可以根据实际使用继续分配更多内存,例如调用append方法,这就是可变的意思。比如上面代码4中函数里面的注释那句是可以修改String的值的。



返回列表 返回列表
评论

    分享到