当前位置:首页 » 《随便一记》 » 正文

Java字符串

14 人参与  2023年05月03日 18:01  分类 : 《随便一记》  评论

点击全文阅读


?道阻且长,行则将至。?

目录

字符串?1.String2.StringBuffer3.StringBuider


字符串?

String类表示字符串。Java程序中的所有字符串文字,比如“abc”,都是作为这个类的实例实现的。
字符串是常量,它们的值在创建后不能更改字符串缓冲区支持可变字符串。因为字符串对象是不可变的,所以它们可以被共享。
例如:String str = "abc";
相当于:char data[] = {'a ',' b ',' c ' };
String str =new String(data);
以下是更多使用字符串的示例:
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
String c = "abc".substring(2, 3);
String d = cde.substring(1, 2);
类String包括用于检查序列中的单个字符、比较字符串、搜索字符串、提取子字符串以及创建所有字符都转换为大写或小写的字符串副本的方法。大小写映射基于字符类指定的Unicode标准版本。
Java语言为字符串连接运算符(+), 以及其他对象到字符串的转换提供了特殊支持。有关字符串连接和转换的更多信息,请参见Java语言规范。… …
实现说明:
字符串连接操作符的实现由Java编译器决定,只要编译器最终符合Java语言规范。例如,根据JDK版本,javac编译器可能使用StringBuffer、StringBuilder或Java.lang.invoke.stringconcatfactory实现运算符。字符串转换的实现通常是通过方法toString,由Object定义并由Java中的所有类继承。
作者:Lee Boynton, Arthur van Hoff, Martin Buchholz, Ulf Zibis

1.String

在java中最简单的创建字符串方法就是使用String类:

直接给字符串赋值String str="Java";
使用构造方法String str2=new String("Java");

他们的区别在于str存储在公共池中,而str2存储在堆中。
构造方法也可以使用字符数组作为参数:

char[] strc={'J','a','v','a'};String str4=new String(strc);

我们可以查看String:
在这里插入图片描述
在String中提供有多中构造方法和字符串方法,说明:

方法~
字符串索引取值charAt(int index)
字符串长度length()
判断字符串是否为空isEmpty()
连接字符串concat(String str)\ +
字符串比较equals()
字符串哈希值hashCode()
转换为字符数组toCharArray()
第一次出现指定字符子字符串的索引值indexOf(String str)
指定字符子字符串最后一次出现处的索引lastIndexOf(String str)
字符串是否匹配正则表达式matches(String str)
根据正则表达式的匹配拆分字符串split(String str)
子字符串substring(int beginIndex, int endIndex)
忽略字符串前导空白和尾部空白trim()
返回参数x的数据类型的字符串表示形式static String valueOf(dataType x)
数字串转数字Integer.parseInt(String str)

2.StringBuffer

由于string类型的字符串是不能修改的,当需要修改字符串我们就需要使用StringBuffer或者StringBuider的对象。

StringBuffer线程安全的;
StringBuider具有更快的速度

StringBuffer修改字符串示例(append):

StringBuffer stringBuffer = new StringBuffer("Java");stringBuffer.append(" is");stringBuffer.append(" The").append(" best!");System.out.println(stringBuffer);

》初始化也可以使用非负的int型数字为参数。

我们常用到StringBufferappend方法在原字符串后面追加字符串。除此之外,StringBuffer还有一些常用方法:

1.反转字符串reverse()

在这里插入图片描述

2.删除子字符串delete(int start, int end)

System.out.println(stringBuffer.delete(4, 6));

在这里插入图片描述

3.插入子字符串insert(int i, String s)

System.out.println(stringBuffer.insert(0, "hello "));
在这里插入图片描述

4.替换子字符串replace((int start, int end, String str)

System.out.println(stringBuffer.replace(12, 16, "best language"));
在这里插入图片描述

5.返回当前容量capacity()

示例:

StringBuffer stringBuffer = new StringBuffer("Java");System.out.println(stringBuffer);System.out.println("容量:"+stringBuffer.capacity());stringBuffer.append(" is");stringBuffer.append(" The").append(" best!");System.out.println(stringBuffer);System.out.println("容量:"+stringBuffer.capacity());

在这里插入图片描述
使用初始设置容量的方法:

StringBuffer stringBuffer = new StringBuffer(5);stringBuffer.append("java");System.out.println(stringBuffer);System.out.println("容量:"+stringBuffer.capacity());stringBuffer.append(" is");stringBuffer.append(" The").append(" best!");System.out.println(stringBuffer);System.out.println("容量:"+stringBuffer.capacity());

在这里插入图片描述

发现:默认容量是20,且每次扩容也是增加20。

还有length()charAt()toString()等String支持的方法。

3.StringBuider

同样也可以使用数字或者字符串进行初始化:

StringBuilder stringBuilder = new StringBuilder(5);stringBuilder.append("Java ");stringBuilder.append("is").append(" the best!");System.out.println(stringBuilder);

在这里插入图片描述

StringBuider提供与StringBuffer兼容的API,但不保证同步。 此类设计用作StringBuffer替代品,用于单个线程使用字符串缓冲区的位置(通常情况下)。 在可能的情况下,建议优先使用此类,因为在大多数实现中它会更快。StringBuilder的主要操作是appendinsert方法。


水光潋滟晴方好,山色空蒙雨亦奇。——饮湖上初晴后雨·苏轼

在这里插入图片描述


☕物有本末,事有终始,知所先后。?

?☝☝☝☝☝我的CSDN☝☝☝☝☝☝?


点击全文阅读


本文链接:http://zhangshiyu.com/post/60538.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1