String常用方法
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常用方法的更多相关文章
- Javascript语言精粹之String常用方法分析
Javascript语言精粹之String常用方法分析 1. String常用方法分析 1.1 String.prototype.slice() slice(start,end)方法复制string的 ...
- JAVA之旅(十六)——String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较
JAVA之旅(十六)--String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较 过节耽误了几天,我们继续JAVA之旅 一.String概述 String时 ...
- JVM内存分配及String常用方法
一,JVM内存分配和常量池 在介绍String类之前,先来简单分析一下在JVM中,对内存的使用是如何进行分配的.如下图所示(注意:在jdk1.8之后便没有方法区了): 如上JVM将内存分为 ...
- Java 中String常用方法
java中String的常用方法 1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len ...
- Java中String常用方法
java中String的常用方法1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len= ...
- 类String 常用方法
字符串当中的常用方法之比较相关的方法 public boolean equals (object obj):将此字符串与指定的对象进行比较(只有参数是字符串并且内容相同才会返回true) public ...
- JavaScript String常用方法和属性
在JavaScript中,字符串是不可变的,如果使用索引对字符串进行修改浏览器不会报错,但也没有任何效果.JavaScript提供的这些方法不会修改原有字符串的内容,而是返回一个新的期望的字符串. 一 ...
- JavaSE| String常用方法
字符串 * java.lang.String类型:字符串类型 * 1.String类型是final修饰,不能被继承的 * 2.Java 程序中的所有字符串字面值(如 "abc" ) ...
- String常用方法简介
1. 创建String对象的常用方法 (1) String s1 = "mpptest" (2) String s2 = new String(); (3) String s3 ...
随机推荐
- 第 3 章 镜像 - 016 - Dockerfile 常用指令
Dockerfile 常用指令 1.FROM 指定base镜像2.MAINTAINER 设置镜像的作者,可以为任意字符串3.COPY 从build context 复制到镜像 COPY 支持两种形式: ...
- 到达一个数 Reach a Number
2018-09-24 14:19:58 问题描述: 问题求解: 初看到这个问题,直觉上认为可以通过BFS遍历解空间进行求解,因为本质上来说,这个问题和棋盘上移动马的问题是一类问题,都是可以转化成图的问 ...
- python3 语法小结
(1) 关键字 # -*- coding: utf-8 -*- #!/usr/bin/python3 """ 1.关键字(保留字) ['False', 'None', ' ...
- Cisco常用配置和命令
1.ASA常用管理management-access inside #开启远程连接inside口 show snmp-server oidlist #查看ASA snmp的 ...
- OpenVPN参数详解
一般选项: –config file : 从file中读取配置选项. –help : 显示选项. –version : 显示版权和版本信息. 隧道选项: –local host : 本地主机名或IP地 ...
- JavaScript的几个概念简单理解(深入解释见You Don't know JavaScript这本书)
ES201X是JavaScript的一个版本. ES2015新的feature let, const Scope, 块作用域 Hoisting Closures DataStructures: Obj ...
- hdu-6035 Colorful Tree
题目意思是计算所有路径(n*(n-1)/2)经过的不同颜色的数目和. 这个数目和可以转化为每种颜色经过的路径数目的求和,而这个求和又等价于颜色总数*n*(n-1)/2-没有经过某种颜色的边的数量的求和 ...
- jenkins 构建selenium python (浏览器驱动是chromedriver)的解决方法
1.在chrome浏览去中输入chrome://version 查看chrome 的安装位置 2.将chromedriver 驱动添加到可执行文件路径中 3.在Jenkins中 的系统设置中-环境变 ...
- 6月16 ThinkPHP连接数据库及Model数据模型层--------查询及数据添加
连接数据库配置及Model数据模型层 convertion.php config.php 1.在config.php做数据库连接配置 2.修改配置 /* 数据库设置 */ 'DB_TYPE' => ...
- stl中常用的排序算法
#include"iostream" #include"vector" using namespace std; #include"string&qu ...