Java的字符串操作
- 小型送分题:Java有字符串(String),StringBuffer(字符串缓存),StringBuilder(字符串建造者?)各种实现,究其原因还是历史上的各种坑。
一、不同字符串操作的对比
![06fd98fad08dcd9d6a30c6758f41d54e.png](https://i-blog.csdnimg.cn/blog_migrate/1aedbe35483bc7bf3eb36a0c26060bb7.jpeg)
1.1 C++中const修饰指针
以*为界,左物右指
const在星号的左边,是被指向的常量不可变
![d310b0c372eb47a5af442ad02143115f.png](https://i-blog.csdnimg.cn/blog_migrate/f01e6b78edf143d647dbf71ba543d91d.png)
const在星号的右边,是指针的指向不可变
![350a359109216bdc3810778a3b7a4f63.png](https://i-blog.csdnimg.cn/blog_migrate/ac057aa9354a9e8960f5af46b936013e.png)
| 说明 | 左 | 右 | | ---- | ------------------------------------------------ | ------------------------------------------------------------ | | 定义 | 指向const常量值的指针 | const常量指针 | | 解释 | 当const在的左边时,实际物体值不变 | 指针本身成为一个const指针,必须把const标明的部分放在的右边 | | 示例 | const int * x;
int const * x;//两者是一致的 | int * const p = 地址 // 因为P 所指向的地址是不能被修改的,所以必须被初始化 |
2. 小型送分题:请自己设计一整套测试程序,测试演示说明以上各种字符串类型的效率差别(条件不足的可以省略C/C++部分)。
二、 Java字符串操作类的性能比较
2.1 具体代码
package
2.2 测试结果
![3944f9ad6f00a2e12d6afe1f1ae82263.png](https://i-blog.csdnimg.cn/blog_migrate/c0ada0f14b7bb16ca6e285a20456ce6c.jpeg)
2.3 小结
可见,String类操作字符串十分消耗性能,StringBuilder比StringBuffer的效率略高。
3. 小型送分题:请完成如下功能,使用正则表达式测试从字符串中识别
三、正则表达式的匹配
a) 邮编号码
b) 区号-座机号码
c) 手机号码
3.1 具体代码
package
3.2 测试结果
![cfbff9848d74dfe06c815fa9bcc2490a.png](https://i-blog.csdnimg.cn/blog_migrate/db36214b8721dd7261f337023d0da159.png)
参考资料
https://www.cnblogs.com/tsingke/p/12075078.html
https://blog.csdn.net/u010275850/article/details/77512695
https://www.cnblogs.com/qxj511/p/4965793.html
java中String StringBuilder StringBuffer比较和效率(性能)测试 - 行者老夫 - 博客园
Java中字符串操作类String、StringBuffer、StringBuilder区别及性能对比测试_Java_Mr电阻的博客-CSDN博客