1.

String StringBuffer StringBuilder的区别:

     001.在执行速度方法
StringBuilder > StringBuffer > String 002.线程安全 多线程情况下
StringBuilder: 单线程使用,多线程不安全
StringBuffer : 多线程安全
String : 数据量小的时候使用
003.String本身是不可变的!每当我们操作一次字符串,就会创建一个新的对象!
StringBuilder,StringBuffer每次操作都是一个对象!
2.
import org.junit.Test;

public class StringDemo {

    @Test
public void test01() {
String a = "abc";
String b = "ABC";
System.out.println("字符串的长度:" + a.length());
System.out.println("字符串是否相等:" + (a == b));
System.out.println("字符串内容是否一致(区分大小写):" + (a.equals(b)));
System.out.println("字符串内容是否一致(不区分大小写):" + (a.equalsIgnoreCase(b)));
System.out.println("把abc变成大写:" + a.toUpperCase());
System.out.println("把ABC变成大写:" + b.toLowerCase());
} @Test
public void test02() {
String a = "abcdefg";
// 把字符串转换成char类型的数组
char[] newArray = a.toCharArray();
for (char c : newArray) {
System.out.println(c);
}
} @Test
public void test03() {
String a = "a+b?c?d-e?f?g";
/**
* 把一个有特点的字符串拆分成一个Stirng类型的数组
* 了解 正则表达式 后续会有讲解
*/
String[] newStringArr = a.split("-");
for (String s : newStringArr) {
System.out.println(s);
}
} @Test
public void test04() {
String a = "501804392@qq.com.cn";
// indexOf("@") 返回@在字符串中的下标 如果没有 返回-1
int index = a.indexOf("@");
System.out.println("@在字符串中出现的位置是:" + index);
// 邮箱最多有两个. 找到最后一个点的位子
index = a.lastIndexOf(".");
System.out.println(".在字符串中最后出现的位置是:" + index);
} @Test
public void test05() {
String a = "0123456789";
// 只想获取6789 substring(6) 从下标为6的开始截取包含本身
a = a.substring(6);
System.out.println(a);
/**
* 只想获取456
* substring(4, 7)
* 4:我们开始截取的位置 包含本身
* 7:我们截取结束的位置 不包含本身
*/
a = "0123456789";
a = a.substring(4, 7);
System.out.println(a);
} @Test
public void test06() {
String a = "0123456789";
// 把5换成+
a = a.replace("5", "+");
System.out.println(a);
} @Test
public void test07() {
String a = "01234a6789";
// 返回下标位置的 元素
char b = a.charAt(5);
System.out.println(b);
} @Test
public void test08() {
String a = "01234";
String b = "56789";
System.out.println(a + b);
System.out.println(a.concat(b));
} @Test
public void test09() {
String a = "01234";
// 是否包含某个字符 如果不存在返回false
System.out.println(a.contains("0"));
} @Test
public void test10() {
String a = "abcde";
byte[] bytes = a.getBytes();
for (byte b : bytes) {
System.out.println((char) b);
}
} @Test
public void test11() {
// 01.定义变量
String name = "xiaohei";
// 02.定义操作字符串的次数
int count = 2000000;
// 03.设置开始时间
long beginTime = System.currentTimeMillis();
for (int i = 0; i < count / 100; i++) { // 20000次
name += "haha";
}
// 03.设置结束时间
long endTime = System.currentTimeMillis();
System.out.println("String的执行时间:" + (endTime - beginTime));
System.out.println("****************************");
name = "xiaohei";
// 04.使用StringBuffer
StringBuffer buffer = new StringBuffer(name);
beginTime = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
buffer = buffer.append("haha");
}
endTime = System.currentTimeMillis();
System.out.println("StringBuffer的执行时间:" + (endTime - beginTime));
System.out.println("****************************");
name = "xiaohei";
// 05.使用StringBuilder
StringBuilder builder = new StringBuilder(name);
beginTime = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
builder = builder.append("haha");
}
endTime = System.currentTimeMillis();
System.out.println("StringBuilder的执行时间:" + (endTime - beginTime)); }
}

String常用方法

String常用方法的更多相关文章

  1. Javascript语言精粹之String常用方法分析

    Javascript语言精粹之String常用方法分析 1. String常用方法分析 1.1 String.prototype.slice() slice(start,end)方法复制string的 ...

  2. JAVA之旅(十六)——String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较

    JAVA之旅(十六)--String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较 过节耽误了几天,我们继续JAVA之旅 一.String概述 String时 ...

  3. JVM内存分配及String常用方法

    一,JVM内存分配和常量池 ​ 在介绍String类之前,先来简单分析一下在JVM中,对内存的使用是如何进行分配的.如下图所示(注意:在jdk1.8之后便没有方法区了): ​ ​ 如上JVM将内存分为 ...

  4. Java 中String常用方法

    java中String的常用方法 1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len ...

  5. Java中String常用方法

    java中String的常用方法1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len= ...

  6. 类String 常用方法

    字符串当中的常用方法之比较相关的方法 public boolean equals (object obj):将此字符串与指定的对象进行比较(只有参数是字符串并且内容相同才会返回true) public ...

  7. JavaScript String常用方法和属性

    在JavaScript中,字符串是不可变的,如果使用索引对字符串进行修改浏览器不会报错,但也没有任何效果.JavaScript提供的这些方法不会修改原有字符串的内容,而是返回一个新的期望的字符串. 一 ...

  8. JavaSE| String常用方法

    字符串 * java.lang.String类型:字符串类型 * 1.String类型是final修饰,不能被继承的 * 2.Java 程序中的所有字符串字面值(如 "abc" ) ...

  9. String常用方法简介

    1. 创建String对象的常用方法 (1) String s1 = "mpptest" (2)  String s2 = new String(); (3) String s3 ...

随机推荐

  1. JFinal3.0 sql管理与动态生成

    原文: 本节学习目标主要是使用JFinal中自带的Template Engin来实现对sql的管理.JFinal中为sql管理提供了3个指令#sql.#para.#namespace,来增强sql功能 ...

  2. Using Option Files

    Most MySQL programs can read startup option files(sometimes called configuration files). Option file ...

  3. HeadFIrst Ruby 第六章总结 block return values

    前言 这一章通过抽取一个文件中的确定的单词的项目进行讲解,主要包括了: File 的打开.阅读与关闭 find_all & refuse方法的相关内容 map 方法的相关内容这章的核心是:关于 ...

  4. learn python the hard way 习题1~5总结

    习题1 print 语句print('Yay! Printing.')print('I "said" do not touch this') 习题2:注释和 # 号 #(octot ...

  5. C# 测试代码段性能耗时

     一:              DateTime BeginTime = System.DateTime.Now;            //代码            DateTime EndTi ...

  6. 20181013xlVba年级报表拆分为班级报表

    '年级报表拆分为班级报表 Public Sub CreateClassReport() Application.DisplayAlerts = False Dim Wb As Workbook Dim ...

  7. mac 下配置Android sdk

    1.通过homebrew进行安装  地址:https://brew.sh/index_zh-cn.html 2.homebrew install android sdk 3.找到路径如: /Users ...

  8. CF438D 线段树 区间求和,区间求膜,单点更新

    题目链接 题目大意: 给定一个长度为n的序列,要求能够执行m次下列操作: 1.查询区间[l,r]的和 2.将区间[l,r]的每一个数%=mod 3.修改第x个数为y 操作1,3都是线段树的基本操作,线 ...

  9. js事件流 事件捕获 及时间冒泡详解

    Javascript与HTML之间的交互是通过事件实现. 一.事件流 事件,是文档或浏览器窗口中发生的一些特定的交互瞬间.事件流,描述的是页面中接受事件的顺序.IE9,chrome,Firefox,O ...

  10. 函数使用八:BP_EVENT_RAISE

    此函数是关联触发一个已经定义的事件,这个事件可以放到SM36里设置JOB,这样就做成了一个事件触发JOB的东西. Import EVENTID                    事件ID ,对应S ...