学习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 ...
随机推荐
- js中控制流管理的四种方法
引自http://es6.ruanyifeng.com/#docs/generator#yield--表达式 1.常用的回调方法 step1(function (value1) { step2(val ...
- Ajax请求参数传到后台为空
1.编码格式 $.ajax({ method:'POST', url:'/midservice/studentAction/addStudent', data:$.toJSON(userDate), ...
- List--列表合成
1,基本规则是,一对中括号里面包含一个表达式,表达式里可以有for语句,还可以有分支的for或者if语句. 2,例如: 3,列表合成可以快速地合并多个列表. 例如: 当然还可以直接加:[1, 2, 3 ...
- 数位DP入门题——[hdu2089]不要62
数位DP是我的噩梦. 现在初三了,却没AC过数位DP的题目. 感觉数位DP都是毒瘤-- 题目 hdu不用登录也可以进去,所以就不把题目copy到这里来了. 题目大意 求区间[n,m][n,m][n,m ...
- html常用标签详解4-列表标签
列表标签 列表标签分为3大类:无序列表.有序列表.自定义列表.线面我会依依简单介绍 一.无序列表 有个type属性: 默认:disc:实心小圆点:circle:空心小圆点:square:实心小方块:n ...
- D - Tree and Hamilton Path
题意 给一棵树,问一个排列,使得按顺序走过这些点的路径最长. N<=100000 解法 为了能让每条边被经过的次数达到上界, 我们首先找出重心, 然后容易得出一种排列方案,使得答案为以重心为根的 ...
- 《DSP using MATLAB》Problem 7.34
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- python初学小记
使用PyCharm向世界打招呼! print (“Hello world!”) 介绍自己的基本信息的方法 name = input("name:")age = int(input( ...
- np.random.choice的用法
np.random.choice的用法 2018年01月15日 10:18:23 qfpkzheng 阅读数:6306 标签: 自己学习 更多 个人分类: 总结 import numpy as n ...
- Luogu P2066 机器分配(dp)
P2066 机器分配 题面 题目背景 无 题目描述 总公司拥有高效设备 \(M\) 台,准备分给下属的 \(N\) 个分公司.各分公司若获得这些设备,可以为国家提供一定的盈利.问:如何分配这 \(M\ ...