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泛型类的使用(二)
接上一篇继续介绍Java泛型的高级特性。3. **编译时类型检查**:尽管运行时发生类型擦除,编译器会在编译阶段进行严格类型检查,并允许通过`extends`关键字对类型参数进行约束,确保类型安全。4. **桥方法**:为保证多态性,编译器会生成桥方法以处理类型擦除带来的问题。5. **运行时获取泛型信息**:虽然泛型信息在运行时被擦除,但可通过反射机制部分恢复这些信息,例如使用`ParameterizedType`来获取泛型参数的实际类型。
|
6天前
|
安全 Java 编译器
JAVA泛型类的使用(一)
Java 泛型类是 JDK 5.0 引入的重要特性,提供编译时类型安全检测,增强代码可读性和可维护性。通过定义泛型类如 `Box&lt;T&gt;`,允许使用类型参数。其核心原理是类型擦除,即编译时将泛型类型替换为边界类型(通常是 Object),确保与旧版本兼容并优化性能。例如,`Box&lt;T&gt;` 编译后变为 `Box&lt;Object&gt;`,从而实现无缝交互和减少内存开销。
|
3月前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
171 83
|
2月前
|
存储 JavaScript Java
Java 中的 String Pool 简介
本文介绍了 Java 中 String 对象及其存储机制 String Pool 的基本概念,包括字符串引用、构造方法中的内存分配、字符串文字与对象的区别、手工引用、垃圾清理、性能优化,以及 Java 9 中的压缩字符串特性。文章详细解析了 String 对象的初始化、内存使用及优化方法,帮助开发者更好地理解和使用 Java 中的字符串。
Java 中的 String Pool 简介
|
2月前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
2月前
|
缓存 安全 Java
java 为什么 String 在 java 中是不可变的?
本文探讨了Java中String为何设计为不可变类型,从字符串池的高效利用、哈希码缓存、支持其他对象的安全使用、增强安全性以及线程安全等方面阐述了不可变性的优势。文中还通过具体代码示例解释了这些优点的实际应用。
java 为什么 String 在 java 中是不可变的?
|
3月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
76 26
|
2月前
|
存储 Java
Java 11 的String是如何优化存储的?
本文介绍了Java中字符串存储优化的原理和实现。通过判断字符串是否全为拉丁字符,使用`byte`代替`char`存储,以节省空间。具体实现涉及`compress`和`toBytes`方法,前者用于尝试压缩字符串,后者则按常规方式存储。代码示例展示了如何根据配置决定使用哪种存储方式。
|
3月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
104 8
|
3月前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
89 2

热门文章

最新文章