学习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 ...
随机推荐
- <每日一题>题目23:桶排序
''' 桶排序:最快最简单的排序 缺点:最占内存 类型:分布式排序 ''' import cProfile import random def bucketSort(nums): #选出最大的数 ma ...
- css3之字体@font-face
@font-face能够加载服务器端的字体文件,让浏览器端可以显示用户电脑里没有安装的字体. 浏览器支持 表格中的数字表示支持该属性的第一个浏览器版本号. Firefox, Chrome, Safar ...
- [转]C#委托的异步调用
本文将主要通过“同步调用”.“异步调用”.“异步回调”三个示例来讲解在用委托执行同一个“加法类”的时候的的区别和利弊. 首先,通过代码定义一个委托和下面三个示例将要调用的方法: ); //模拟该方法运 ...
- 再不懂时序就 OUT 啦!,DBengine 排名第一时序数据库,阿里云数据库 InfluxDB 正式商业化!
云数据库 InfluxDB® 版介绍 阿里云数据库 InfluxDB® 版已于近日正式启动商业化 . 云数据库 InfluxDB® 是基于当前最流行的开源数据库 InfluxDB 提供的在线数据库服务 ...
- vbox搭建centos常用技巧
初始化 :vbox系统网络连接方式用桥接 :ping不通,请修改/etc/sysconfig/network-scripts/ifcfg-eth0 ONBOOT=no 改成 ONBOOT=yes 然后 ...
- ie浏览器将网页转成pdf
今天同事让我帮他将网页转成pdf,学了一个.先推荐一个超图的数据库使用指南:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/6.1.1/ ...
- naturalWidth、naturalHeight来获取图片的真实宽高
一般在图片放大缩小,或动态插入图片时使用 function imagea(img){ var w = img.naturalWidth; var h = img.naturalHeight; } 注: ...
- mysql中的字符集和校对规则(mysql校对集)
1.简要说明介绍 字符集和校对规则 字符集是一套符号和编码.校对规则是在字符集内用于比较字符的一套规则. MySql在collation提供较强的支持,oracel在这方面没查到相应的资料. 不同字符 ...
- PAT甲级——A1012 The Best Rank
To evaluate the performance of our first year CS majored students, we consider their grades of three ...
- Linux程序包管理初步-rpm的使用
在Linux系统上,一般而言,对于程序包管理器来说分为三类: debian:dpt,dpkg; (程序包后缀.deb) rhel:rpm (程序包后缀.rpm) suse:rp ...