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类的有关知识点,若有啥错误,欢迎大家指出,谢谢大家。




































目录
相关文章
|
6天前
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
17 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
1天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
13 6
|
3天前
|
IDE Java 编译器
Java:如何确定编译和运行时类路径是否一致
类路径(Classpath)是JVM用于查找类文件的路径列表,对编译和运行Java程序至关重要。编译时通过`javac -classpath`指定,运行时通过`java -classpath`指定。IDE如Eclipse和IntelliJ IDEA也提供界面管理类路径。确保编译和运行时类路径一致,特别是外部库和项目内部类的路径设置。
|
2天前
|
安全 Java 测试技术
Java零基础-StringBuffer 类详解
【10月更文挑战第9天】Java零基础教学篇,手把手实践教学!
9 2
|
3天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。
【10月更文挑战第14天】从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。本文深入探讨Set的核心理念,并通过示例代码展示了HashSet和TreeSet的特点和应用场景。
8 2
|
3天前
|
存储 Java 索引
Java 中集合框架的常见接口和类
【10月更文挑战第13天】这些只是集合框架中的一部分常见接口和类,还有其他一些如 Queue、Deque 等接口以及相关的实现类。理解和掌握这些集合的特点和用法对于高效编程非常重要。
|
5天前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
10 1
|
8天前
|
数据可视化 Java
让星星月亮告诉你,通过反射创建类的实例对象,并通过Unsafe theUnsafe来修改实例对象的私有的String类型的成员属性的值
本文介绍了如何使用 Unsafe 类通过反射机制修改对象的私有属性值。主要包括: 1. 获取 Unsafe 的 theUnsafe 属性:通过反射获取 Unsafe类的私有静态属性theUnsafe,并放开其访问权限,以便后续操作 2. 利用反射创建 User 类的实例对象:通过反射创建User类的实例对象,并定义预期值 3. 利用反射获取实例对象的name属性并修改:通过反射获取 User类实例对象的私有属性name,使用 Unsafe`的compareAndSwapObject方法直接在内存地址上修改属性值 核心代码展示了详细的步骤和逻辑,确保了对私有属性的修改不受 JVM 访问权限的限制
25 4
|
8天前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
21 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
10天前
|
存储 安全 Java
Java基础-Collection类关系图
Java基础-Collection类关系图
11 0