53 字符串查找
boolean contains(String str) 判断子串是否存在 JDK>=1.5
int indexOf(String str) 从开头查找子字符串位置 没有查到返回 -1
int indexOf(String str, int fromIndex) 从指定位置查找子字符串位置
int lastIndexOf(String str) 从后向前查找子字符串位置
int lastIndexOf(String str, int fromIndex) 从后向前指定位置查找子字符串位置
boolean startsWith(String prefix) 是否以指定字符开头
boolean startsWith(String prefix, int offset) 指定位置开始是否以指定字符开头
boolean endsWith(String suffix) 是否以指定字符结尾
String str = "Hello World" ; str.contains("Hello"); // true str.indexOf("World"); // 6 str.indexOf("World", 6); // 6 str.lastIndexOf("World"); // 6 str.lastIndexOf("World", 6); // 6 str.startsWith("World"); // false str.startsWith("World", 6); // true str.endsWith("World"); // ture
54 字符串替换
String replaceAll(String regex, String replacement) 全部替换
String replaceFirst(String regex, String replacement) 替换首个
String str = "Hello World" ; str.replaceAll("l", "X"); // HeXXo WorXd str.replaceFirst("l", "X"); // HeXlo World
55 字符串拆分
String[] split(String regex) 拆分字符串为数组
String[] split(String regex, int limit) 指定拆分次数
String str1 = "Hello World Java" ; String[] strList1 = str1.split(" ") ; // {"Hello", "World", "Java"} String[] strList2 = str1.split(" ", 2) ; // {"Hello", "World Java"} // 拆分特殊字符使用 \\ 转义 String str2 = "192.168.0.1" ; String[] strList2 = str2.split("\\.") ; // {"192", "168", "0", "1"}
56 字符串截取
String substring(int beginIndex) 截取字符串
String substring(int beginIndex, int endIndex) 指定结束位索引
通过计算确定索引
String str = "http://www.baidu.com/logo.png" ; // 计算开始结束位置 int beginIndex = str.indexOf("/", str.indexOf("com")) + 1 ; int endIndex = str.lastIndexOf(".") ; // 截取字符串 String name = str.substring(beginIndex, endIndex); System.out.println(name); // logo
57 字符串格式化
static String format(Locale l, String format, Object… args)
static String format(String format, Object… args)
常用占位符
字符串 %s
字符 %c
整数 %d
小数 %f
String name = "小明" ; int age = 23 ; double score = 98.995321 ; // 保留两位小数 String.format("%s: %d - %5.2f", name, age, score); // 小明: 23 - 99.00
58 其它操作方法
String concat(String str) 运行时拼接
String intern() 字符串入池
boolean isEmpty() 判断长度为0 不是null 是 “”
int length() 计算长度, 区别数组属性length
String trim() 去除左右空白
String toLowerCase() 字母转小写
String toUpperCase() 字母转大写
static String join(CharSequence delimiter, CharSequence… elements)
static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
实例
1、首字母转大写
/** * 首字母转大写 */ public static String initCap(String str) { if(str == null || "".equals(str)){ return str ; // 原样返回 } if(str.length() == 1){ return str.toUpperCase(); }else{ return str.substring(0, 1).toUpperCase() + str.substring(1); } } initCap(null); // null initCap(""); // "" initCap("a"); // "A" initCap("hello"); // "Hello"
2、字符串数组转字符串
String.join("-", "a", "b", "c"); // a-b-c String.join("-", new String[]{"a", "b", "c"}); // a-b-c