学习String类
1. 描述: String类是java中比较常用的类, 表示字符串类型
当拼接大量数据时, String类性能没有StringBuilder和StringBuffer性能高
2. 常用的String语法:
import org.junit.Test;
public class StringTest {
@Test
public void testString() {
String s1 = new String("AA");
System.out.println(s1); // AA
String s2 = "AA";
System.out.println(s2); // AA
// 获取字符串某个索引位置的字符
char c = "abcd".charAt(2);
System.out.println(c); // c
// 拼接字符串
String s3 = "abc".concat("123");
String s4 = "abc" + 123;
String s5 = String.format("%s啊啊撒%d", "abc", 123);
System.out.println(s3); // abc123
System.out.println(s4); // abc123
System.out.println(s5); // abc啊啊撒123
// 判断字符串是否包含指定的字符
boolean b1 = "azxc".contains("x");
boolean b2 = "azxc".contains("s");
System.out.println(b1 + "-----" + b2); // true-----false
// 判断字符串是否 以...结尾
boolean b3 = "azxc".endsWith("xc");
System.out.println(b3); // true
// 判断字符串是否相等
boolean b4 = "az".equals("az");
boolean b5 = "az".equals("aZ");
System.out.println(b4 + "----" + b5); // true-----false
// 判断字符串是否相等(忽略大小写)
boolean b6 = "ac".equalsIgnoreCase("Ac");
System.out.println(b6); // true
// 获取字符串长度
int length = "abc".length();
System.out.println(length); // 3
// 正则匹配
String regex = "\\d+";
boolean b7 = "123".matches(regex);
System.out.println(b7); // true
String regex1 = "[a-zA-Z]+";
boolean b8 = "aaBFc".matches(regex1);
System.out.println(b8); // true
String regex2 = "^a.*";
boolean b = "aabFdx".matches(regex2);
System.out.println(b); // true
String regex3 = "^a.*d$";
boolean b9 = "aabFda".matches(regex3);
System.out.println(b9); // false
// 字符串替换
String s = "aabxdsca".replace('a', '2');
System.out.println(s); // 22bxdsc2
// 将字符串以...分割成字符串数组
String regex4 = "\\d+";
String[] strArr = "aa12bbyb34asd".split(regex4);
for (String s6 : strArr) {
System.out.println(s6);
/**
* aa
* bbyb
* asd
*/
}
// 以...开头
boolean b10 = "cmfdsaaa".startsWith("cm");
System.out.println(b10); // true
// 从指定位置截取到字符串末尾
String s6 = "abcdefg".substring(2);
System.out.println(s6); // cdefg
// 字符串从指定的开始位置截取到指定的结束位置
String s7 = "asdffgeaszx".substring(2, 6);
System.out.println(s7); // dffg
// 将字符串转换成小写
String s8 = "ACDdsx".toLowerCase();
// 将字符串转换成大写
String s9 = "ACDdsx".toUpperCase();
System.out.println(s8); // acddsx
System.out.println(s9); // ACDDSX
// 将字符串两端的空格去掉,中间的空格不会去掉
String s10 = " dud sda sad ".trim();
System.out.println(s10); // dud sda sad
// 将int类型转换成字符串
String s11 = String.valueOf(1024);
System.out.println(s11); //
}
/**
* StringBuilder 拼接字符串速度最快, 线程不安全,因为底层方法没有用synchronized修饰
*/
@Test
public void testStringBuilder() {
StringBuilder sb = new StringBuilder();
sb.append("aa").append("vss").append(13).append("adsa").append("dfsfd").toString();
String s = sb.toString();
System.out.println(s); // aavss13adsadfsfd
}
/**
* StringBuffer 拼接字符串速度比较快, 线程安全, 底层方法都是用synchronized修饰
* , 用synchronized修饰表示线程安全,但是速度没那么快
*/
@Test
public void testStringBuffer() {
StringBuffer sb = new StringBuffer();
sb.append("aa").append("asdas").append(123).toString();
String s = sb.toString();
System.out.println(s); // aaasdas123
}
}
学习String类的更多相关文章
- 源码学习-String类
最近在扫描CodeDex时报了一个不能使用String.intern()的字符串来做锁对象的告警,对这个问题有疑问查了些资料,顺便学习一下String类的源码. 1.类定义 String 被final ...
- String类及常用方法
在学习String类之前,先看一道笔试题:new String("abc")创建了几个对象? 答案: 两个对象, 一个对象是 位于字符串常量池中,一个对象是位于堆内存中. 原因:主 ...
- [java初探外篇]__关于StringBuilder类与String类的区别
前言 我们前面学习到String类的相关知识,知道了它是一个字符串类,并且了解到其中的一些方法,但是当时并没有太过注意到String类的特点,今天就StringBuilder类的学习来比较一下两者的区 ...
- JAVA学习第二十九课(经常使用对象API)- String类
多线程告一段落,開始经常使用对象API的涉及,背也要背下来!.! 日后开发,遇见最多的对象是文字,也就是字符串 String类 字符串是一个特殊对象 字符串一旦初始化就不能够被改变 一.特点 publ ...
- 20175212童皓桢 在IDEA中以TDD的方式对String类和Arrays类进行学习
20175212童皓桢 在IDEA中以TDD的方式对String类和Arrays类进行学习 要求 在IDEA中以TDD的方式对String类和Arrays类进行学习 测试相关方法的正常,错误和边界情况 ...
- 20155312张竞予 20170510实践一:在IDEA中以TDD的方式对String类和Arrays类进行学习
实践题目 在IDEA中以TDD的方式对String类和Arrays类进行学习 测试相关方法的正常,错误和边界情况 String类 charAt split Arrays类 sort binarySea ...
- 20155326 第12周课堂实践总结(二)String类和Arrays类的学习
20155326 第12周课堂实践总结(二)String类和Arrays类的学习 实践二 Arrays和String单元测试 实践题目 在IDEA中以TDD的方式对String类和Arrays类进行学 ...
- Java学习(API及Object类、String类、StringBuffer字符串缓冲区)
一.JAVA的API及Object类 1.API 概念: Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就 ...
- <CPP学习 第二天> 字符串的输入 及 String类
今天简单的学习了字符串的输入以及C++的String类. 1.面向行的输入: getline(); getline()函数读取整行,通过回车键输入的换行符来确定输入结尾.要调用这种方法,可以使用cin ...
随机推荐
- MySQL模拟Oracle序列使用
https://www.runoob.com/mysql/mysql-using-sequences.html 一篇笔记开始看 注意:创建序列表时一定要有 主键id自增,否则为只读状态不能修改递增 ...
- Spring MVC 返回 xml json pdf 数据的配置方法
<!-- Spring MVC 返回 xml 数据的配置方法 --> <bean class="org.springframework.web.servlet.vi ...
- python urllib模块中的方法
1.urllib.urlopen(url[,data[,proxies]]) 打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作.本例试着打开google >>> ...
- OpenCV读取RTSP视频流
用opencv的VideoCapture读取RTSP视频流,只有opencv3.1版本可以,之前的版本都无法读取视频流.可能的原因是云平台的RTSP视频流太差,经常错码.项目最后使用的是opencv2 ...
- JS的同步和异步加载
引言 JS的“加载”不能理解为下载,它是分为两个部分:下载,执行.默认的JS加载是同步的,因为浏览器需要一个稳定的DOM结构,而执行JS时可能会对DOM造成改变,所以在执行JS时一定会阻塞HTML的渲 ...
- [转]js模块化——AMD及require.js
由CommonJS组织提出了许多新的JavaScript架构方案和标准,希望能为前端开发提供统一的指引.AMD规范就是其中比较著名一个,全称是Asynchronous Module Definitio ...
- 1008-Redo
关于flag,都立下了 T1 考试的时候就觉得是贪心,但是不会反悔emm…… 于是正解就是一个堆优化可反悔的贪心=.= 每次找前面最小的,于是是小根堆. 我们在交易的时候发现后面的一个可以更优. 于是 ...
- JasperReports报表变量13
报表变量是建立在报表表达式之上的特殊对象.报表变量简化以下任务: 报表,其中大量使用在整个报告模板表达式.这些表达式可以通过使用报表变量只能声明一次. 计数,求和,平均,最低,最高,方差等:报表变量可 ...
- npm config set registry 与 cnpm的区别
一直以为这2个事没有区别的: npm config set registry http://registry.npm.taobao.org 后使用npm命令. npm install -g cnpm ...
- 【html、CSS、javascript-5】css应用场景补充
一.CSS全局应用 父标签div下包含两个子标签div,当子标签dvi全部向左float,此时父标签设置的背景色是不显示的 <!DOCTYPE html> <html lang=&q ...