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类的更多相关文章

  1. 源码学习-String类

    最近在扫描CodeDex时报了一个不能使用String.intern()的字符串来做锁对象的告警,对这个问题有疑问查了些资料,顺便学习一下String类的源码. 1.类定义 String 被final ...

  2. String类及常用方法

    在学习String类之前,先看一道笔试题:new String("abc")创建了几个对象? 答案: 两个对象, 一个对象是 位于字符串常量池中,一个对象是位于堆内存中. 原因:主 ...

  3. [java初探外篇]__关于StringBuilder类与String类的区别

    前言 我们前面学习到String类的相关知识,知道了它是一个字符串类,并且了解到其中的一些方法,但是当时并没有太过注意到String类的特点,今天就StringBuilder类的学习来比较一下两者的区 ...

  4. JAVA学习第二十九课(经常使用对象API)- String类

    多线程告一段落,開始经常使用对象API的涉及,背也要背下来!.! 日后开发,遇见最多的对象是文字,也就是字符串 String类 字符串是一个特殊对象 字符串一旦初始化就不能够被改变 一.特点 publ ...

  5. 20175212童皓桢 在IDEA中以TDD的方式对String类和Arrays类进行学习

    20175212童皓桢 在IDEA中以TDD的方式对String类和Arrays类进行学习 要求 在IDEA中以TDD的方式对String类和Arrays类进行学习 测试相关方法的正常,错误和边界情况 ...

  6. 20155312张竞予 20170510实践一:在IDEA中以TDD的方式对String类和Arrays类进行学习

    实践题目 在IDEA中以TDD的方式对String类和Arrays类进行学习 测试相关方法的正常,错误和边界情况 String类 charAt split Arrays类 sort binarySea ...

  7. 20155326 第12周课堂实践总结(二)String类和Arrays类的学习

    20155326 第12周课堂实践总结(二)String类和Arrays类的学习 实践二 Arrays和String单元测试 实践题目 在IDEA中以TDD的方式对String类和Arrays类进行学 ...

  8. Java学习(API及Object类、String类、StringBuffer字符串缓冲区)

    一.JAVA的API及Object类 1.API 概念: Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就 ...

  9. <CPP学习 第二天> 字符串的输入 及 String类

    今天简单的学习了字符串的输入以及C++的String类. 1.面向行的输入: getline(); getline()函数读取整行,通过回车键输入的换行符来确定输入结尾.要调用这种方法,可以使用cin ...

随机推荐

  1. 通过实体类生成建表SQL语句实现方法

    import java.io.File; import java.io.FileOutputStream; import java.lang.reflect.Field; import java.ut ...

  2. Spring MVC 返回 xml json pdf 数据的配置方法

    <!-- Spring MVC 返回 xml 数据的配置方法 -->     <bean class="org.springframework.web.servlet.vi ...

  3. webpack:Cannot find module 'extract-text-webpack-plugin'

    问题: 在终端中使用此命令安装了extract-text-webpack-plugin,npm install -g extract-text-webpack-plugin并在webpack.conf ...

  4. HZOI2019 A. 那一天我们许下约定 dp

    题目大意:https://www.cnblogs.com/Juve/articles/11219089.html 读这道题的题目让我想起了... woc我到底在想什么?好好写题解,现在不是干那个的时候 ...

  5. Django项目:CRM(客户关系管理系统)--78--68PerfectCRM实现CRM业务流程(bpm)报名缴费分页

    # pagination.py # ————————68PerfectCRM实现CRM业务流程(bpm)报名缴费分页———————— from django.utils.safestring impo ...

  6. 线性基(模板) LUOGU 3812

    题面 解题思路 线性基,是构造出一组数:ax,ax-1-.a1,ax的二进制最高位为x.这些数字能异或和可以表示原来所有数的异或和.其实相当于一个高斯消元的过程.所以我们按位枚举,如果这一位曾经没数, ...

  7. ajax发送验证码

    $.ajax({     url:url,     type:"POST",     data:data,     dataType:"JSON",     s ...

  8. 101 Hack October'14

    拖了近一个月的总结.(可能源于最近不太想做事:() A题 给出n个长度都为n的字符串,你只可以对每个字符串分别排序,问当每个字符串按升序排序之后,每一列是否也是升序的. #include <cm ...

  9. Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---模板方法模式之CoffeineBeverageWithHook[转]

    模板方法模式定义了一个算法骨架,允许子类对算法的某个或某些步骤进行重写(override).   1   2{<HeadFirst设计模式>之模板方法模式 }   3{ 编译工具: Del ...

  10. Java文件写入

    一,FileWritter写入文件 FileWritter, 字符流写入字符到文件.默认情况下,它会使用新的内容取代所有现有的内容,然而,当指定一个true (布尔)值作为FileWritter构造函 ...