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月前
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
331 108
|
2月前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
212 101
|
29天前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
79 4
|
1月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
132 5
|
1月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
115 1
|
1月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
178 1
|
1月前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
126 1
|
1月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
129 1
|
1月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
220 5