Java学习路线-4:String字符串(3)

简介: Java学习路线-4:String字符串

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
相关文章
|
3月前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
481 3
|
3月前
|
SQL Java 数据库
2025 年 Java 从零基础小白到编程高手的详细学习路线攻略
2025年Java学习路线涵盖基础语法、面向对象、数据库、JavaWeb、Spring全家桶、分布式、云原生与高并发技术,结合实战项目与源码分析,助力零基础学员系统掌握Java开发技能,从入门到精通,全面提升竞争力,顺利进阶编程高手。
719 1
|
3月前
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
402 108
|
3月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
345 100
|
3月前
|
开发者 Python
Python中的f-string:高效字符串格式化的利器
Python中的f-string:高效字符串格式化的利器
465 99
|
3月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
|
3月前
|
开发者 Python
Python f-string:高效字符串格式化的艺术
Python f-string:高效字符串格式化的艺术
|
4月前
|
Python
Python中的f-string:更简洁的字符串格式化
Python中的f-string:更简洁的字符串格式化
309 92
|
3月前
|
SQL 算法 Java
零基础到精通的史上最强 Java 学习路线图推荐
史上最全Java学习路线图,涵盖基础语法、面向对象、数据结构与算法、多线程、JVM、Spring框架、数据库及项目实战,助你从零基础到精通Java开发,附完整代码与工具推荐。
276 4
零基础到精通的史上最强 Java 学习路线图推荐