package api;
import java.util.Arrays;
import java.util.List;
public class StringApi {
public static void main(String[] args) {
// String 构造方法
String s1 = new String(); // 创建空字符串
//System.out.println(s1); // ""
String s2 = new String("abcd"); // 创建字符串 值=abcd
//System.out.println(s2); // abcd
char[] charArr = {'a', 'b', 'c', 'd'};
String s3 = new String(charArr); // 通过字符数组创建字符串
//System.out.println(s3); // abcd
// 通过截取的字符串数组创建字符串 1表示数组下标 2 表示截取的位数
String s4 = new String(charArr, 1, 2);
//System.out.println(s4); // bc
StringBuffer buffer = new StringBuffer("abcd");
String s5 = new String(buffer); // 通过StingBuffer创建String
//System.out.println(s5); // abcd
StringBuilder builder = new StringBuilder("abcd");
String s6 = new String(builder); // 通过StringBuilder创建String
//System.out.println(s6); // abcd
int[] intArr = {1,2,3,98, 97, 100}; //转为(ASCLL码)
String s7 = new String(intArr, 1, 5); //同 String(charArr, 1, 2);
//System.out.println(s7); // bad
byte[] byteArr = {97, 98, 99, 100};
String s8 = new String(byteArr); // 通过字节数组创建字符串(ASCLL码)
//System.out.println(s8); // abcd
// String 公有方法
String string = "abcdefg";
int length = string.length(); // 字符串长度
//System.out.println(length); // 7
boolean isEmpty = string.isEmpty(); // 判断字符串是否为空字符串
//System.out.println(isEmpty); // false
char ch = string.charAt(2); // 返回string中index = 2的字符
//System.out.println(ch); // c
char[] chArr = {' ',' ',' ',' '}; // 把截取的字符串复制到目标字符数组中
string.getChars(0, 4, chArr, 0); // p1: srcBegingIndex p2: srcEndIndex(不包括) p4: dstBeginIndex
//System.out.println(String.valueOf(chArr)); // {'a', 'b', 'c', 'd'} → abcd
byte[] bs = string.getBytes(); // 返回byte数组 转为(ASCLL码)
//System.out.println(bs[0]); // {97, 98, 99, 100, 101, 102, 103}
boolean isEquals = string.equals("213"); // 判断两个字符串是否相等
//System.out.println(isEquals); // false
StringBuffer buffer2 = new StringBuffer("abcdefg");
boolean isContentEquals = string.contentEquals(buffer2); // 判断字符串值是否相等
//System.out.println(isContentEquals); // true;
StringBuilder builder2 = new StringBuilder("abcdefg");
boolean isContentEquals2 = string.contentEquals(builder2); // 判断字符串值是否相等
//System.out.println(isContentEquals2); // true;
boolean isEqualsIgnoreCase = string.equalsIgnoreCase("ABCDEFG"); // 判断相等不区分大小写
//System.out.println(isEqualsIgnoreCase);
int compareTo = string.compareTo("abcD"); // 返回ASCII码值相减 如果有一个字符串为""则返回另一字符串长度
//System.out.println(compareTo); // 99('d') - (67)('D') = 32
int compareToIgnoreCase = string.compareToIgnoreCase("AbCDeFG"); // 不区分大小写比较
//System.out.println(compareToIgnoreCase); // 0
// 判断两个字符串是否匹配 p1: srcIndex p3: dstIndex p4 length
boolean isRegionMatch = string.regionMatches(0, "232abc25435", 3, 2);
//System.out.println(isRegionMatch);
// 判断两个字符串是否匹配 p1:ignoreCase(true, false) p2: srcIndex p4: dstIndex p5 length
boolean isRegionMatchIgnoreCase = string.regionMatches(true, 0, "232ABC25435", 3, 2);
//System.out.println(isRegionMatchIgnoreCase);
boolean isStartWith = string.startsWith("abc"); // 字符串以abc开头 匹配从 index = 0 开始
//System.out.println(isStartWith); // true
isStartWith = string.startsWith("cd", 2); // 字符串以abc开头 匹配从 index = 2 开始
//System.out.println(isStartWith); // true
boolean isEndWith = string.endsWith("efg"); // 字符串以efg结尾
//System.out.println(isEndWith); // true
String str = "abcefbacefbasdefdsaf";
int pos = str.indexOf('b'); // 第一次出现'b'的index
//System.out.println(pos); // 1
pos = str.indexOf("ef"); // 第一次出现"ef"的index
//System.out.println(pos); // 3
pos = str.indexOf('b', 3); // 从index = 3开始 第一次出现'b'的index
//System.out.println(pos); // 5
pos = str.indexOf("ef", 5); // 从index = 5开始 第一次出现"ef"的index
//System.out.println(pos); // 8
pos = str.lastIndexOf('b'); // 最后一次出现'b'的index
//System.out.println(pos); // 10
pos = str.lastIndexOf("ef"); // 最后一次出现"ef"的index
//System.out.println(pos); // 14
pos = str.lastIndexOf('b', 4); // 最后一次出现'b'的index 搜索范围0-4(包含4)
//System.out.println(pos); // 1
pos = str.lastIndexOf("ef", 5); // 最后一次出现"ef"的index 搜索范围0-5(包含5)
//System.out.println(pos); // 3
str = string.substring(2); // 截取字符串 index = 2 开始
//System.out.println(str); // cdefg
str = string.substring(2, 4); // 截取字符串 index = 2 开始 index = 4 结束
//System.out.println(str); // cd
CharSequence cSequence = string.subSequence(2, 4);
//System.out.println(cSequence);// 同subString(2, 4)
str = string.concat("123"); // 字符串连接 +
//System.out.println(str); // abcdefg123
str = string.replace('c', 'C'); // 字符替换
//System.out.println(str); // abCdefg
str = string.replace("bc", "BC"); // 字符串替换
//System.out.println(str); // aBCdefg
boolean isMatches = string.matches("_bcdefe"); // 字符串匹配 符合正则表达式
//System.out.println(isMatches); // false
boolean isContains = string.contains("bc"); // 包含字符串 bc
//System.out.println(isContains); // true
str = string.replaceFirst("bc", "gg"); // 替换出现的第一个字符串 符合正则表达式
//System.out.println(str); // aggdefg
str = string.replaceAll("b", "d"); // 替换全部字符串 符合正则表达式
//System.out.println(str); // adcdefg
String[] strings = "sjfdl-sdfaj-asdf-asdf".split("-"); // 分割字符串 "-" 分割符 符合正则表达式
//System.out.println(Arrays.asList(strings)); // [sjfdl, sdfaj, asdf, asdf]
strings = "sadf-sadf-asdf-sadf-sadf".split("-", 2); // 分割字符串 分割次数
//System.out.println(Arrays.asList(strings)); // [sadf, sadf-asdf-sadf-sadf]
str = string.toLowerCase(); // 转为小写
//System.out.println(str); // abcdefg
str = string.toUpperCase(); // 转为大写
//System.out.println(str); // ABCDEFG
str = " sf sas ".trim(); // 取消前后空格
//System.out.println(str); // sf sas
char[] cs = string.toCharArray(); // 转为字符数组
// for(char c: cs)
// System.out.print(c + " "); // a b c d e f g
// System.out.println();
// 静态方法
str = String.join(",", strings);
str = String.join("-", "dsadf", "sdf", "Sadf"); // 使用间隔符把字符串连接起来
//System.out.println(str); // dsadf-sdf-Sadf
List<String> list = Arrays.asList("sdaf", "sadf", "sdf"); //
str = String.join("?", list); // list转为string
//System.out.println(str); // sdaf?sadf?sdf
str = String.format("sfd%s%d", "qqq", 3);// 字符串格式化
//System.out.println(str); // sfdqqq3
str = String.valueOf(3); // p1 type [Object, char[], char, int, long, float, double] // 转为字符串
str = String.valueOf(cs, 2, 3); // char[]转为string
//System.out.println(str); // cde
str = String.copyValueOf(cs); // char[]转为string
//System.out.println(str); // abcdefg
str = String.copyValueOf(cs, 2, 3); // char[]转为string
//System.out.println(str); // cde
}
}
java String 详解
最新推荐文章于 2021-02-21 05:51:33 发布