Java中的字符串
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
//1、m.substring(a,b)提取出m的a到b-1的子串
String m1 = "endeavour";
String an = m1.substring(0,2);//输出为en
//2、使用+可以进行字符串拼接
String m2 = "lo";
String n2 = "ve";
String an1 = m2 + n2;//输出love
//字符串和非字符串进行拼接时后者会被转化为字符串
int k = 3;
String an2 = m2 + n2 + k;//输出Love3
//使用静态方法join可以把多个字符串放在一起,第一个数为分隔符,后面的为字符串
String all = String.join("1", "s", "m", "e", "l", "l");//输出s/m/e/l/l
//3、String类没有修改字符串的方法,可以通过使用m = m.substring(a,b)+c来达到修改的效果
//4、equals()方法检验字符串是否相等,相等返回true,不相等返回false
String m3 = "love1";
String n3 = "love2";
boolean an3 = m3.equals(n3);//输出为false
boolean an4 = "love".equals("love");//输出为true
//不区分大小写检查字符串是否相等
String m4 = "love";
String n4 = "LoVe";
boolean an5 = m4.equalsIgnoreCase(n4);//输出为true
//5、""表示空穿,null表示没有对象与变量关联
//6、代码点和代码单元
//代码点(code point)是指与一个编码表中的某个字符对应的代码值。在Unicode标准中,代码点采用十六进制书写,并加上前缀U+,例如U+0041就是字母A的代码点。
//在基本的多语言级别中,每个字符用16位表示,通常被称为代码单元(code unit);而辅助字符采用对连续的代码单元进行编码。
String m5 = "love";
int an6 = m5.length();//获取给定字符串所需的代码单元数量,输出为4
int an7 = m5.codePointCount(0, m5.length());//得到代码点数量,输出为4
char first = m5.charAt(3);//charAt(n)返回n位置的代码单元
//得到第i个码点
int index1 = m5.offsetByCodePoints(0, 3);
int cp = m5.codePointAt(index1);
//7、String API
String m6 = "hellq";
String m7 = "hello";
String m8 = "helln";
//获得给定位置的代码单元
char ch = m7.charAt(2);//返回l
//返回给定位置开始的代码点
int codePoint = m7.codePointAt(2);//返回108
//返回从第一个数开始位移第二个数后的码点索引
int index = m7.offsetByCodePoints(1,2);//返回3
//m.compareTo(n),如果字符串m位于n之前,返回一个负数;如果m位于n之后,返回一个正数;相等返回0
int compare1 = m7.compareTo(m6);//返回-2
int compare2 = m7.compareTo(m8);//返回为1
int compare3 = m7.compareTo("hello");//返回0
//将字符串的码点作为一个流返回,调用toArray方法放到数组中
int[] codePoints = m7.codePoints().toArray();//返回104,101,108,108,111
//用codePoints数组中从0的codePoints.length个码点构造一个字符串
String m9 = new String(codePoints, 0, codePoints.length);//输出为hello
//相等返回true,不相等返回false
boolean bool1 = m7.equals("hello");//返回true
//忽略大小写,相等返回true,不相等返回false
boolean bool2 = m7.equalsIgnoreCase("HeLLo");//返回true
//以指定字符串开头返回true,否则返回false
boolean bool3 = m7.startsWith("h");//返回true
//以指定字符串结尾返回true,否则返回false
boolean bool4 = m7.endsWith("o");//返回true
//返回与字符串或者代码点匹配的第一个子串的开始位置。这个位置从0或者fromIndex开始计算。如果原始串中不存在则返回-1
int index2 = m7.indexOf("l");//输出2
int index3 = m7.indexOf("llo",1);//输出2
int index4 = m7.indexOf(101);//输出1
int index5 = m7.indexOf(101, 1);//输出1
//返回与字符串或者代码点匹配的最后一个子串的开始位置。这个位置从原始尾串端或fromIndex开始计算。如果原始串中不存在则返回-1
int index6 = m7.lastIndexOf("l");//输出3
int index7 = m7.lastIndexOf("l", 3);//输入3
int index8 = m7.lastIndexOf(108);//输出3
int index9 = m7.lastIndexOf(108,4);//输出3
//返回字符串的长度
int length = m7.length();//输出5
//codePointCount(a, b)返回a到b-1之间的代码点数量,没有配成对的代用字符将计入代码点
int codePointCount = m7.codePointCount(0, m7.length());
//m7.replace(a, b)返回一个新字符串。字符串中的a替换b,若a不在源字符串中则返回原字符串。
String replaced = m7.replace("lo", "p!");//输出help!
//返回一个新字符串。
String m7_1 = m7.substring(1);//输出ello
String m7_2 = m7.substring(1, 2);//输出e
//转大写
String up = m7.toUpperCase();//输出HELLO
//转小写
String low = up.toLowerCase();//输出hello
//返回一个删除了头部和尾部的空格的新字符串
String m10 = " hello!";
String m10_trim = m10.trim();//输出hello!
//返回一个新字符串,用给定的定界符连接所有元素
String m11 = String.join("0","d","c","d");//输出d0c0d
}
}