学习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 ...
随机推荐
- 让html里的js脚本延迟5秒运行
setTimeout( function(){ //add your code}, 5 * 1000 );//延迟5000毫米
- 玩转大数据系列之Apache Pig如何与Apache Solr集成(二)
散仙,在上篇文章中介绍了,如何使用Apache Pig与Lucene集成,还不知道的道友们,可以先看下上篇,熟悉下具体的流程. 在与Lucene集成过程中,我们发现最终还要把生成的Lucene索引,拷 ...
- Ln- Linux必学的60个命令
1.作用 ln命令用来在文件之间创建链接,它的使用权限是所有用户. 2.格式 ln [options] 源文件 [链接名] 3.参数 -f:链结时先将源文件删除. -d:允许系统管理者硬链结自己的目录 ...
- Postfix+Dovecot+MySQL搭建邮件服务器(续)
上一篇中的原文中$7$是错的,应该用$6$, 找到: 原因可参考 https://passlib.readthedocs.io/en/stable/lib/passlib.hash.sha512_cr ...
- [转]WPF命令集 Command
在我们日常的应用程序操作中,经常要处理各种各样的命令和进行相关的事件处理,比如需要复制.粘贴文本框中的内容;上网查看网页时,可能需要返回上一网页查看相应内容;而当我们播放视频和多媒体时,我们可能要调节 ...
- [编织消息框架][netty源码分析]5 EventLoopGroup 实现类NioEventLoopGroup职责与实现
分析NioEventLoopGroup最主有两个疑问 1.next work如何分配NioEventLoop 2.boss group 与child group 是如何协作运行的 从EventLoop ...
- JavaBean基础学习总结
学习目标: 掌握JavaBean的基本定义格式. 掌握Web目录的标准结构. 掌握JSP中对JavaBean支持的三个标签,即<jsp:useBean>,<jsp:setProper ...
- spring源码学习之AOP(二)
接着上一篇中的内容! 3.创建代理 在获取了所有的bean对应的增强器之后,便可以进行代理的创建了org.springframework.aop.framework.autoproxy包下的Abstr ...
- TZ_03_mybatis的注解开发
1.一对多的注解开发 1>需求通过查询所有的用户,并且找到该用户的所有账户(使用延迟加载模式) @Select("select * from user") //sql语句查询 ...
- SSM3-SVN的安装和搭建环境
1.安装svn 2.创建仓库 3.设置用户 . 4.eclipse和svn的集成 eclipse里安装SVN插件,一般来说,有两种方式: 直接下载SVN插件,将其解压到eclipse的对应目录里 使用 ...