Java字符串(String类)(下)

简介: 前面小编给大家分享了Java语法的知识,今天和大家一起学习关于Java字符串的相关知识,字符串在校招笔试中也是常考的一类题目,也是非常的重要,希望看完这篇文章,能对你们有所帮助,fighting冲冲冲~~~

🎄2.5字符串的转化

👜数值和字符串转化

1.publicclassTest_1 {
publicstaticvoidmain(String[] args) {
Stringstr1=String.valueOf(100);
Stringstr2=String.valueOf(99.99);
System.out.println(str1);//输出100System.out.println(str2);//输出99.99    }
}

👜大小写转换

publicclassTest_1 {
publicstaticvoidmain(String[] args) {
Strings1="helloworld";
Strings2="HELLOWORLD";
// 小写转大写,输出HELLOWORLDSystem.out.println(s1.toUpperCase());
// 大写转小写,输出helloworldSystem.out.println(s2.toLowerCase());
    }
}

👜字符串转数组

publicclassTest_1 {
publicstaticvoidmain(String[] args) {
Strings1="hello";
System.out.println(s1.toCharArray());
    }
}

👜格式化

publicclassTest_1 {
publicstaticvoidmain(String[] args) {
Strings=String.format("%d-%d-%d", 2019, 9,14);
System.out.println(s);//输出2019-9-14    }
}

🎄2.6字符串的替换

188df7141c824a429f6e47631c8f8def.png

publicclassTest_1 {
publicstaticvoidmain(String[] args) {
Stringstr="abcabcabcabcabc";
//将字符串中的b转换为a,输出aacaacaacaacaacSystem.out.println(str.replace('b', 'a'));
//将字符串中的ab转换为dd,输出ddcddcddcddcddcSystem.out.println(str.replaceAll("ab", "dd"));
//将字符串中首个ab转换为ff,输出ffcabcabcabcabcSystem.out.println(str.replaceFirst("ab", "ff"));
    }
}

🎄2.7字符串拆分

9ea150197f9c419fb0058e86e52ee63b.png

publicclassTest_1 {
publicstaticvoidmain(String[] args) {
Stringstr="hello world hello bit";
String[] result=str.split(" ");// 按照空格拆分String[] result1=str.split(" ", 2);// 按照空格拆分,分2次分割System.out.println(Arrays.toString(result));
System.out.println(Arrays.toString(result1));
    }
}

输出如下:

9e2a4a42bcda4abbb98740e408e1bc3a.png

这里有几种特殊情况,举个例子:

512a6edc42dc401791c73168f91a01ca (2).png

这里就用到了转义字符:

  • 1. 字符"|","*","+"都得加上转义字符,前面加上 "\\" .
  • 2. 而如果是 "\" ,那么就得写成 "\\\\" .
  • 3. 如果一个字符串中有多个分隔符,可以用"|"作为连字符.
publicclassTest_1 {
publicstaticvoidmain(String[] args) {
Stringstr="2019.12.12";
String[] result=str.split("\\.");
for (inti=0; i<result.length; i++) {
System.out.printf("%s ",result[i]);
        }
    }
}

fa32bd71314c41358dcf33f483a0a83e.png我们还可以进行多次分割:

publicclassTest_1 {
publicstaticvoidmain(String[] args) {
Stringstr="2019=12+12";
String[] result=str.split("=|\\+");//第一次以=作为分割,第二次以+作为分割for (inti=0; i<result.length; i++) {
System.out.printf("%s ",result[i]);
        }
    }
}

fa32bd71314c41358dcf33f483a0a83e.png


🎄2.8字符串截取

fd99c838115143a79725fa9ad0d41331.png

publicclassTest_1 {
publicstaticvoidmain(String[] args) {
Stringstr="helloworld";
System.out.println(str.substring(5));//从下标为5的字符开始截取,输出worldSystem.out.println(str.substring(2, 4));//从下标为2截取到下标为4,但是不包括4,输出ll    }
}

注意事项:

  • 索引从0开始
  • 注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标


🛴三.StringBuilder和StringBuffffer


🎄3.1StringBuilder和StringBuffffer的使用

 当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

7751bd0f6d6abcd4bf59655655734155.png     在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。    

publicclassTest_1 {
publicstaticvoidmain(String[] args) {
StringBuilderstringBuilder=newStringBuilder("abc");
StringBufferstringBuffer=newStringBuffer("abc");
System.out.println(stringBuilder);//输出abcSystem.out.println(stringBuffer);//输出abc    }
}
publicclassTest_1 {
publicstaticvoidmain(String[] args) {
StringBufferstringBuffer=newStringBuffer("百度网站:");
stringBuffer.append("www.");
stringBuffer.append("baidu.");
stringBuffer.append("com");
System.out.println(stringBuffer);
stringBuffer.delete(0, 5);//删除下班索引0-5,但是不包括下标5的字符System.out.println(stringBuffer);
stringBuffer.reverse();
System.out.println(stringBuffer);//逆序字符串    }
}

47e9c3b81c7d453c864d9e8398891674.png

关于StringBuilder和StringBuffer的操作的方法有如下:

序号

方法描述

1

public StringBuffer append(String s)
将指定的字符串追加到此字符序列。

2

public StringBuffer reverse()
 将此字符序列用其反转形式取代。

3

public delete(int start, int end)
移除此序列的子字符串中的字符。

4

public insert(int offset, int i)
将 int 参数的字符串表示形式插入此序列中。

5

insert(int offset, String str)
将 str 参数的字符串插入此序列中。

6


replace(int start, int end, String str)
使用给定 String 中的字符替换此序列的子字符串中的字符。

🎄3.2StringBuilder和StringBuffffer的好处

  1. StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
  2. 由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。
  3. 然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。


🛴四.总结


String在Java开发也是必不可少的角色,如对上文有意见或者有错误,还请大佬们斧正,觉得有帮助的童鞋们,创作不易,蟹蟹三连!

目录
相关文章
|
6天前
|
存储 安全 Java
Java零基础-字符串详解
【10月更文挑战第18天】Java零基础教学篇,手把手实践教学!
89 60
|
1天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
27 17
|
2天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
6天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
6天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
6天前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
15 3
|
9天前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
17 5
|
10天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
11 3
|
10天前
|
Java
在Java多线程编程中,实现Runnable接口通常优于继承Thread类
【10月更文挑战第20天】在Java多线程编程中,实现Runnable接口通常优于继承Thread类。原因包括:1) Java只支持单继承,实现接口不受此限制;2) Runnable接口便于代码复用和线程池管理;3) 分离任务与线程,提高灵活性。因此,实现Runnable接口是更佳选择。
22 2
|
10天前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
20 2

热门文章

最新文章