Java中String和StringBuilder类

简介: 浅浅了解,学习一下Java中String,StringBuffer,StringBuilder的相关知识。

String类

创建字符串

项目中,字符串不可避免使用。字符串是引用类型,但是可以不用new,可以直接创建字符串

Strings="ABC123"//String直接创建Strings1="ABC123"//String直接创建StringS=newString("ABC123";//String 对象创建char[] a= { 'A', 'B', 'C', '1', '2', '3'};
Stringa=newString(a);  
System.out.println( a );//输出同样为ABC123

拼接字符串

string1.concat(string2);
Strings1="hello";
Strings2="world";
s1.concat(s2);
或者使用"+""hello"+"world"

格式化字符串

一,格式化

1,格式化指令:描述要输出的特殊格式

2,要格式化的值

formact("%,d",2000000);
Strings=String.formact("%,d",2000000);
//逗号表示数字以逗号分开 System.out.println(s);//2,000,000//format()方法第一个参数被称为‘格式化串’,//他可以带有实际上要这么输出而不用转译的字符,而%符号会被方法其余参数替换掉的位置。//%表示第二个参数放置的位置,“.2f”表示要使用的格式,其余照常输出。format("there are %.2f apples",11.0987);
//输出 there are 11.10 apples

3.格式化语法

%,d表示以十进制整数带有逗号方式来表示。%.2f代表小数点后两位的方式来格式化此浮点数%,.2f代表整数部分以带有逗号方式来表示,小数部分以后两位来格式化。

4.“格式化说明”的格式

%[argument_index$][flags][width][.precision]conversion


1.argument_index ⽤于表明参数在参数列表中的位置。

2. flags 特定类型的特定选项,例如数字要加逗号或者正负号。

3.width 最小字符数。

4. .precision 精确度(前面有圆点符号)

5.conversion 一定要指定的类型标识别

format("%,4.2f",36.789);

String方法

substring()

//截取字符串Stringsubstring (intstart ,intend);
//String str="think in java"//传两个参数,含头不含尾,从指定位置开始到指定位置结束。//指定位置头包含,但尾不包含。Stringsub=str.substring(5,8);
System.out.println("sub:"+sub);//sub:ing//传一个参数 ,从指定位置开始截取到末尾sub=str.substring(4);
System.out.println("sub:"+sub);//sub:king in java

indexOf()

String indexOf()方法

int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

int indexOf(String str, int fromIndex): 返回从指定位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

Stringstr="thinking in java";
intindex=str.indexOf("in");
System.out.println("index:"+index);//index:2//从指定位置开始找index=str.indexOf("in",3);
System.out.println("index:"+index);//index:5//查找最后一次出现指定字符串位置index=str.lastIndexOf("in");
System.out.println("index:"+index);//index:9

int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索,如果此字符串中没有这样的字符,则返回 -1。

StringStr=newString("www.baidu.com");
System.out.print("从第10个位置查找字符 u最后出现的位置 :" );
System.out.println(Str.lastIndexOf( 'u', 10 ));
//从第10个位置查找字符 u最后出现的位置 :8

charAt()

charAt() 方法用于返回指定索引处的字符。

索引范围为从 0 到 length() - 1。

Stringstr="thinking in java";
charc=str.charAt(4);
System.out.println(c);//k

trim()

trim() 方法用于删除字符串的头尾空白符。

返回删除头尾空白符的字符串

publicStringtrim()
StringStr=newString("    www.baidu.com    ");
System.out.print("原始值 :" );
System.out.println( Str );
System.out.print("删除头尾空白 :" );
System.out.println( Str.trim() );
//原始值 :    www.baidu.com    //删除头尾空白 :www.baidu.com

toUpperCase(),toLowerCase()

大小写转换

Stringstr="java"Stringupper=str.toUpperCase();//JAVAStringlower=str.toLowerCase();//java

StringBuffer 和 StringBuilder 类

StringBuilder 用于提供修改字符串内容相关方法。

在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象。其内部维护的是一个可变的字符数组,所以修改的对象都是在当前对象内部完成的,当前频繁修改字符串内容是应当是在使用当前类完成的。

Strings="学好java";
//将String转换为StringBuilder可以使用有参的构造方法, //StringBuilder也有无参构造方法,默认表示空字符串StringBuilderbuilder=newStringBuilder(s);
//从StringBuilder转换为String使用toString方法s=builder.toString();
//追加字符串builder.append(",我一定行!");
System.out.println(builder.toString());//学好java,我一定行!//替换字符串builder.replace(7,13,"come on");
System.out.println(builder.toString());//学好java,come on//删除字符串builder.delete(0,6);
System.out.println(builder.toString());//,come on//插入字符串builder.insert(0,"jiayou");
System.out.println(builder.toString());//jiayou,come on//反转字符串builder.reverse();
System.out.println(builder.toString());//no emoc,uoyaij

StringBuffer是线程安全的,同步处理的,性能稍慢
StringBuilder 是非线程安全的,并发处理的,性能稍快

java 的字符串连接的过程是利用StringBuilder实现的。

Srtings="a";
Stirngs1=s+"b"+1;
Strings1=newStringBuilder(s).append("b").append(1).toString();

这是java中 String方法,StringBuffer 和StringBuilder类的有关知识点,若有啥错误,欢迎大家指出,谢谢大家。




































目录
相关文章
|
14天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
37 17
|
6天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
10天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
50 4
|
11天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
27 2
|
15天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
19天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
19天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
19天前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
23 3
|
22天前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
21 5
|
22天前
|
存储 安全 Java
String、StringBuffer 和 StringBuilder 的区别
【10月更文挑战第21天】String、StringBuffer 和 StringBuilder 都有各自的特点和适用场景。了解它们之间的区别,可以帮助我们在编程中更合理地选择和使用这些类,从而提高程序的性能和质量。还可以结合具体的代码示例和实际应用场景,进一步深入分析它们的性能差异和使用技巧,使对它们的理解更加全面和深入。
14 0