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




































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