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. Java离线人脸识别SDK 支持arcface 2.0 最新版

    虹软人脸识别SDK之Java版,支持SDK 1.1+,以及当前最新版本2.0,滴滴,抓紧上车! JDK SDK Win release license status 前言 由于业务需求,最近跟人脸识别 ...

  2. QTableWidget自定义表头QHeaderView加全选复选框

    1         QTableWidget自定义表头QHeaderView加全选复选框 在使用QTableWidget时需要在表头添加全选复选框,但是默认的表头无法添加复选框,只能用图片画上去一个复 ...

  3. Codeforces 36B - Fractal

    36B - Fractal 思路:分形 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #def ...

  4. C#通过 “枚举数支持在指定类型的集合上进行简单迭代” 的概念获取List的一种方式

    using System; using System.Collections.Generic; using System.Linq; namespace myMethod { class Animal ...

  5. 滑动拼图 Sliding Puzzle

    2018-09-09 22:01:02 问题描述: 问题求解: 问题很Interesting,其实本质就是解空间遍历,使用BFS就可以很快的予以解决~ public int slidingPuzzle ...

  6. nodejs中function*、yield和Promise的示例

    var co = require("co"); var fs = require("fs"); function cusReadFile(fileName) { ...

  7. 细胞迁移 | cell migration

    一些基本概念: intracellular biochemical signaling pathways:胞内生化信号通路 extracellular mechanical cues: 胞外机械信号 ...

  8. 三个解释——MVC的网址

    [三个MVC网址]1.https://www.cnblogs.com/sunniest/p/4555801.html2.https://www.cnblogs.com/wmyskxz/p/884846 ...

  9. WPF打印涉及到的关键类

    DocumentViewer--->FixedDocument----> PageContent  ---->FixedPage

  10. Android+Servlet+MySql+JSON实现简单的数据查询操作--C/S架构

    本例简单地实现Android客户端与服务器端交互,主要是通过客户端输入内容(学号)提交到服务器端,服务器端与数据库交互去查询相应信息(姓名).根据这个做个完整的安卓登录是没问题的.本例数据库服务器都采 ...