转换功能
@Test
public void ceui() {
String a = "helloworld";
//字符串转数组(使用for循环获取)
char[] chars = "helloworld".toCharArray();
//字符串转字节数组 (使用for循环获取值)
byte[] bytes = a.getBytes();
/*数字转String
* 另外 String.valueOf() 可以将任何数据类型转换成字符串
* */
String s = String.valueOf(132456);
// 将大写转换成小写的字符串
String s1 = "AAAAA".toLowerCase(); //aaaaa
String s2 = "aaaaa".toUpperCase(); //AAAAA
}
分割功能String
public static void main(String[] args) {
/*
* split(String sign)
* 方法可以使用字符串按指定的分割字符或字符串对内容进行分割,
* 并将分割后的结果存放在字符串数组中,有两种分割形式
* str.split(String sign)
*/
String[] split = "AAA-aaa".split("-");
/*for (String s : split) {
System.out.println(s);
}*/
/**
* 数组结果:
* AAA
* aaa
*/
/*第二个参数是 限制分割的次数*/
String[] bb = "AAA-BBB-CCC-DDD".split("-", 2);
for (String s : bb) {
System.out.println(s);
}
/**
* 数组结果:
* AAA
* BBB-CCC-DDD
*/
}
判断功能String
/**
* 各种判断功能
* 和判断非空功能
*/
public class 判断功能String {
/**
* 判空的五种方法
*/
@Test
public void ceui() {
/*效率最高*/
String usernam = "11111111";
if (usernam == null || usernam.length() <= 0) {
System.out.println("是空的");
} else {
System.out.println("是非空的");
}
//方法一:开发中最常用的方法,看起来高大上
// 使用需要导包:
// if(StringUtils.isNotBlank(str))//判断字符串不为空
// if(StringUtils.isBlank(str))//判断字符串为空
// 方法二:比较简单直接的方法
// if(s == null ||"".equals(s));
// 方法四 效率和方法三几乎相等,但是出于兼容性考虑,不建议用这个方法
// if(s == null || s.isEmpty());
// 方法五 这是一种比较直观,简便的方法,而且效率也非常高,与方法三,方法四效率差不多
// if (s == null || s == "");
}
/*
* 判断功能
* boolean equals(Object anObject) 比较字符串内容是否相同(区分大小写)
* boolean equalsIgnoreCase(String anotherString) 比较字符串内容是否相同(忽略大小写)
* boolean contains(String s) 判断大字符串是否包含小字符串
* boolean startsWith(String prefix) 判断字符串是否以某个字符串开头
* boolean endsWith(String prefix) 判断字符串是否以某个字符串结尾
* boolean isEmpty() 判断字符串是否为空
*
* */
public static void main(String[] args) {
String s1 = "helloworld";
String s2 = "HelloWorld";
String s3 = "hello";
String s4 = "world";
String s5 = "";
//String s6=null;
System.out.println(s1 == s2); //false
System.out.println(s1.equals(s2)); //false
System.out.println(s1.equalsIgnoreCase(s2)); //true
System.out.println(s1.contains(s3)); //true
System.out.println(s2.startsWith(s3)); //false
System.out.println(s2.endsWith(s4)); //false
System.out.println(s4.isEmpty());//false
System.out.println(s5.isEmpty()); //true
//System.out.println(s6.isEmpty());//空指针异常
}
字节数组转String
/*
* String(byte[] bytes) ,把字节数组转成字符串
* String(byte[] bytes, int offset, int length) ,截取字节数组的一部分转换为字符串
* String(char[] value)
* String(char[] value, int offset, int count)
* String(int[] codePoints, int offset, int count)
* String(String original),字符串常量值转换为字符串
*/
public static void main(String[] args) {
//从byte型数组中取得的值为阿斯克码表对应的值
byte[] bytes = new byte[]{97, 98, 99, 100, 101};
String str = new String(bytes);
System.out.println("str:" + str);
//我想得到字符串bcd;
String str1 = new String(bytes, 1, 3);//从索引1开始,取4位
System.out.println(str1);
System.out.println("=================================");
char[] ch = {'a', 'b', 'c', 'd'};
String str2 = new String(ch);
System.out.println(str2);
//我想得到cd
String str3 = new String(ch, 2, 2);
System.out.println(str3);
System.out.println("==============================");
//从int型数组中取得的值为阿斯克码表对应的值
int[] arr = {97, 98, 99, 100, 101, 102};
String str4 = new String(arr, 3, 2);
System.out.println(str4);
}
替换功能
https://blog.csdn.net/qq_32967665/article/details/86515587
- replace是替换旧字符串为新的字符,当然使用replaceAll 也可以达到这个效果
- replaceAll 是支持正则的,第一个参数是正则表达式
- replaceFirst 和 replaceAll 一样都是第一个参数是支持正则的,
- 和replaceAll区别是 replaceFirst只是匹配第一个
String str1 = "Hello world ";
String str2 = "abcdefghijklmnabcdefg";
/*将指定的字符或者字符串替换成新的字符或字符串
* 如果要替换的字符串oldChar在字符串中重复出现多次,replace()方法将所有的
* oldChar全部替换成newChar
* 需要注意: 区分大小写
* */
System.out.println(str1.replace("world", "yangk")); //Hello yangk
//区分大小写
System.out.println("aaabcdeaAAsdaabcde".replace("aaa", "bbb")); //bbbbcdeaAAsdaabcde
System.out.println("aaabcdeaaasdaabcde".replace("aaa", "bbb")); //bbbbcdebbbsdaabcde
获取功能String
public static void main(String[] args) {
/*
* String获取功能
* int length();获取String字符串的长度
* char charAt(int index); 返回指定索引处的 char 值。
* int indexOf(int ch) ;返回指定字符在此字符串中第一次出现处的索引。
* int indexOf(String str) ; 返回指定子字符串在此字符串中第一次出现处的索引。
* indexOf(String str, int fromIndex) ;返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
* indexOf(int ch, int fromIndex) ; 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
* String substring(int beginIndex) ;从指定位置截取字符串(从0开始计算索引的)
* substring(int beginIndex, int endIndex) ;从指定索引位置到指定索引位置,截取字符串
* */
String str = "helloWorld";
// System.out.println(str.length()); //10
// System.out.println(str.charAt(1)); //e
// System.out.println(str.indexOf(101)); // 1
// System.out.println(str.indexOf("llo")); // 2
// System.out.println(str.lastIndexOf("l")); //9
// System.out.println("helloWorld".substring(2)); // lloWorld
System.out.println("helloWorld".substring(2, 5)); // llo
}