package com.test;
public class Demo3 {
public static void main(String[] args) {
String string = "1000phone";
// 1.判断:
// 判断是否包含一个子字符串
// boolean contains(CharSequence s)
System.out.println("1000phone".contains("1000"));// true
// 判断两个字符串的内容是否相同
// boolean equals(Object anObject)
System.out.println("1000phone".equals("1000phone"));// true
// 忽略大小写判断两个字符串的内容是否相同
// boolean equalsIgnoreCase(String anotherString)
System.out.println("1000PHONE".equalsIgnoreCase("1000phone"));// true
// 判断是否以某字符串开头
// boolean startsWith(String prefix)
System.out.println("1000phone".startsWith("1000"));// true
// 判断是否以某字符串结尾
// boolean endsWith(String suffix)
System.out.println(string.endsWith("phone"));// true,(或者把string.endsWith("phone")换成"1000phone".endsWith("phone"))
// 2.转换:将字符数组转换成字符串
char[] arr = { 'a', 'b', 'c', 'd', 'e' };
String string2 = new String(arr);
// 1:使用构造方法
// String(char[] value)
// String(char[] value, int offset, int count) 第二个参数
System.out.println("string2=" + string2);// string2=abcde
System.out.println(new String(arr, 1, 3));// bcd,将字符数组转换成字符串,输出数组下标从int offset开始, 到int count结束
// 2:使用静态方法
// static String copyValueOf(char[] data)
// static String copyValueOf(char[] data, int offset, int count)
// 将字符串转成字符数组
// char[] toCharArray()
char[] arr2 = string2.toCharArray();
System.out.println("arr2=" + arr2[3]);// d
// 将字节数组转成字符串
// String(byte[] bytes)
// String(byte[] bytes, int offset, int length)
// String(byte[] bytes, String charsetName)//使用指定的编码将字节数组转换成字符成
byte[] arr3 = { 97, 98, 99 };// 就是把ASCII表中的内容转换,a是97,A是65
String string3 = new String(arr3);
System.out.println("string3=" + string3);// string3=abc
// 将字符串转成字节数组
// byte[] getBytes() //GBK
byte[] arr4 = string2.getBytes();
System.out.println(arr4[1]);// 98
// 将基本数据类型转换成字符串
// String.valueOf()
String string4 = string.valueOf(false);//把()里面的转换成字符串, string4=false
System.out.println("string4=" + string4 + 1);// false1
// 3.替换:
// String replace(char oldChar, char newChar)
String string5 = string4.replace("als", "hello");// 把false中的als替换成hello
System.out.println("string5=" + string5);// string5=fhelloe
// 子串:
// String substring(int beginIndex)
System.out.println("123456789".substring(3));// 456789,输出包含当前(下标)位置到最后的字符串
// String substring(int beginIndex, int endIndex)
// //包含起始(下标)位置,不包含结束(下标)位置,到结束位置的前一位
System.out.println("123456789".substring(3, 6));// 456
// 转换,去除空格,比较:
// 大小写转换
// String toLowerCase() ,小写转换成大写输出
String string6 = string5.toUpperCase();
System.out.println("string6=" + string6);// string6=FHELLOE
// String toUpperCase() ,大写转成小写输出
System.out.println(string6.toLowerCase());// fhelloe
// 将字符串两端的空格去掉,不能去除中间的空格
// String trim()
String string7 = " he llo ";
System.out.println("好:" + string7.trim() + "好");// 好:he llo好
// 按字典顺序比较两个字符串
/*
* 字典顺序就是ASCII码比较当前两个字符,ASCII大的被认为是大的字符
* 规则:从左边第一个字符串开始比,如果不相同,直接认为大字符串就是大字符串,后面的不在进行比较.
* 当前字符比较的区别:使用前面的字符,后面的字符,将差值返回,如果差值是负数,说明前面的字符串大,反之后面的大.
* 如果当前的字符相同,再去比较第二个字符,依次往后推,如果比到最后都相同,则认为两个字符串相等,差值返回0.
*/
// int compareTo(String anotherString) string5=fhelloe
System.out.println(string5.compareTo("fHelloe"));// 结果32,如果fhelloe与felloe相减,结果为0
// 4.切割: String[] split(String)
// 注意:作为刀的字符串,不能被当做内容切出来
String string8 = "a#b#c#d";
String[] strings = string8.split("#");// .是特殊字符,代表任意字符 \\.代表普通的点字符
System.out.println(string8.split("")[1]);// 结果:#,[]中的数字指下标,可以将所有的字符切出来,无条件的切
for (String string9 : strings) {// 用#切出来的字符分别输出
System.out.println("string9=" + string9);// string9=a, string9=b,
// string9=c, string9=d
}
}
}