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. 第 3 章 镜像 - 016 - Dockerfile 常用指令

    Dockerfile 常用指令 1.FROM 指定base镜像2.MAINTAINER 设置镜像的作者,可以为任意字符串3.COPY 从build context 复制到镜像 COPY 支持两种形式: ...

  2. 到达一个数 Reach a Number

    2018-09-24 14:19:58 问题描述: 问题求解: 初看到这个问题,直觉上认为可以通过BFS遍历解空间进行求解,因为本质上来说,这个问题和棋盘上移动马的问题是一类问题,都是可以转化成图的问 ...

  3. python3 语法小结

    (1) 关键字 # -*- coding: utf-8 -*- #!/usr/bin/python3 """ 1.关键字(保留字) ['False', 'None', ' ...

  4. Cisco常用配置和命令

    1.ASA常用管理management-access inside      #开启远程连接inside口 show snmp-server oidlist          #查看ASA snmp的 ...

  5. OpenVPN参数详解

    一般选项: –config file : 从file中读取配置选项. –help : 显示选项. –version : 显示版权和版本信息. 隧道选项: –local host : 本地主机名或IP地 ...

  6. JavaScript的几个概念简单理解(深入解释见You Don't know JavaScript这本书)

    ES201X是JavaScript的一个版本. ES2015新的feature let, const Scope, 块作用域 Hoisting Closures DataStructures: Obj ...

  7. hdu-6035 Colorful Tree

    题目意思是计算所有路径(n*(n-1)/2)经过的不同颜色的数目和. 这个数目和可以转化为每种颜色经过的路径数目的求和,而这个求和又等价于颜色总数*n*(n-1)/2-没有经过某种颜色的边的数量的求和 ...

  8. jenkins 构建selenium python (浏览器驱动是chromedriver)的解决方法

    1.在chrome浏览去中输入chrome://version  查看chrome 的安装位置 2.将chromedriver 驱动添加到可执行文件路径中 3.在Jenkins中 的系统设置中-环境变 ...

  9. 6月16 ThinkPHP连接数据库及Model数据模型层--------查询及数据添加

    连接数据库配置及Model数据模型层 convertion.php config.php 1.在config.php做数据库连接配置 2.修改配置 /* 数据库设置 */ 'DB_TYPE' => ...

  10. stl中常用的排序算法

    #include"iostream" #include"vector" using namespace std; #include"string&qu ...