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开发也是必不可少的角色,如对上文有意见或者有错误,还请大佬们斧正,觉得有帮助的童鞋们,创作不易,蟹蟹三连!

目录
相关文章
|
2天前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:输入与输出:Scanner与System类
你是否也经历过这些崩溃瞬间?三天教程连`i++`和`++i`都说不清,面试时`a==b`与`equals()`区别大脑空白,代码总是莫名报NPE。这个系列就是为你打造的Java「速效救心丸」!每天1分钟,地铁通勤、午休间隙即可学习。直击高频考点和实际开发中的“坑位”,拒绝冗长概念,每篇都有可运行代码示例。涵盖输入输出基础、猜数字游戏、企业编码规范、性能优化技巧、隐藏技能等。助你快速掌握Java核心知识,提升编程能力。点赞、收藏、转发,助力更多小伙伴一起成长!
30 19
|
3天前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:字符串处理:String类的核心API
🌱 **《字符串处理:String类的核心API》一分钟速通!** 本文快速介绍Java中String类的3个高频API:`substring`、`indexOf`和`split`,并通过代码示例展示其用法。重点提示:`substring`的结束索引不包含该位置,`split`支持正则表达式。进一步探讨了String不可变性的高效设计原理及企业级编码规范,如避免使用`new String()`、拼接时使用`StringBuilder`等。最后通过互动解密游戏帮助读者巩固知识。 (上一篇:《多维数组与常见操作》 | 下一篇预告:《输入与输出:Scanner与System类》)
33 11
|
9天前
|
Java
课时14:Java数据类型划分(初见String类)
课时14介绍Java数据类型,重点初见String类。通过三个范例讲解:观察String型变量、&quot;+&quot;操作符的使用问题及转义字符的应用。String不是基本数据类型而是引用类型,但使用方式类似基本类型。课程涵盖字符串连接、数学运算与字符串混合使用时的注意事项以及常用转义字符的用法。
|
8天前
|
存储 Java 编译器
课时11:综合实战:简单Java类
本次分享的主题是综合实战:简单 Java 类。主要分为两个部分: 1.简单 Java 类的含义 2.简单 Java 类的开发
|
10天前
|
传感器 监控 Java
Java代码结构解析:类、方法、主函数(1分钟解剖室)
### Java代码结构简介 掌握Java代码结构如同拥有程序世界的建筑蓝图,类、方法和主函数构成“黄金三角”。类是独立的容器,承载成员变量和方法;方法实现特定功能,参数控制输入环境;主函数是程序入口。常见错误包括类名与文件名不匹配、忘记static修饰符和花括号未闭合。通过实战案例学习电商系统、游戏角色控制和物联网设备监控,理解类的作用、方法类型和主函数任务,避免典型错误,逐步提升编程能力。 **脑图速记法**:类如太空站,方法即舱段;main是发射台,static不能换;文件名对仗,括号要成双;参数是坐标,void不返航。
34 5
|
8天前
|
存储 JavaScript Java
课时44:String类对象两种实例化方式比较
本次课程的主要讨论了两种处理模式在Java程序中的应用,直接赋值和构造方法实例化。此外,还讨论了字符串池的概念,指出在Java程序的底层,DOM提供了专门的字符串池,用于存储和查找字符串。 1.直接赋值的对象化模式 2.字符串池的概念 3.构造方法实例化
|
8天前
|
Oracle Java 关系型数据库
课时37:综合实战:数据表与简单Java类映射转换
今天我分享的是数据表与简单 Java 类映射转换,主要分为以下四部分。 1. 映射关系基础 2. 映射步骤方法 3. 项目对象配置 4. 数据获取与调试
|
9天前
|
Java 程序员
课时16:String字符串
课时16介绍了Java中的String字符串。在Java中,字符串使用`String`类表示,并用双引号定义。例如:`String str = &quot;Hello world!&quot;;`。字符串支持使用“+”进行连接操作,如`str += &quot;world&quot;;`。需要注意的是,当“+”用于字符串与其他数据类型时,其他类型会先转换为字符串再进行连接。此外,字符串中可以使用转义字符(如`\t`、`\n`)进行特殊字符的处理。掌握这些基本概念对Java编程至关重要。
|
10月前
|
存储 XML 缓存
Java字符串内幕:String、StringBuffer和StringBuilder的奥秘
Java字符串内幕:String、StringBuffer和StringBuilder的奥秘
102 0
|
7月前
|
安全 Java API
【Java字符串操作秘籍】StringBuffer与StringBuilder的终极对决!
【8月更文挑战第25天】在Java中处理字符串时,经常需要修改字符串,但由于`String`对象的不可变性,频繁修改会导致内存浪费和性能下降。为此,Java提供了`StringBuffer`和`StringBuilder`两个类来操作可变字符串序列。`StringBuffer`是线程安全的,适用于多线程环境,但性能略低;`StringBuilder`非线程安全,但在单线程环境中性能更优。两者基本用法相似,通过`append`等方法构建和修改字符串。
96 1