java-字符串类

String

字符串拼接:可以使用直接拼接字符串

String s = "hello" + "world";

字符串长度

int n = s.length();

空字符串:长度为0的字符串

String s = "";
int n = s.length();
//空字符串和null是不一样的,空字符串是一个正常的字符对象,null是不指向任何对象

子串:

String substring(int beginIndex)

String substring(int beginIndex, int endIndex)

String s = "helloworld";
String sub = s.substring(1,4);    //1,2,3 不含4
//substring(beginIndex,endIndex) 不含endIndex

判断字符串是否相同:

s1.equal(s2)

String s1 = new String("nihao");
String s2 = new String("nihao");
if(s1.equal(s2)){
    System.out.println("yes");
}
//s1 == s2 是无效的

比较大小:按字典序比较

boolean equals(Object anotherObject) :字符串相等性比较(区分大小写)

boolean equalsIgnore(Object anotherObject): 字符串相等性比较(不区分大小写)

int compareTo(String anotherString):字符串相等性比较(区分大小写)

int compareToIgnore(String anotherString): 字符串相等性比较(不区分大小写)

String s1 = "lisi";
String s2 = "zhangsan";
if(s1.compareTo(s2) < 0)
    System.out.println(s1);
else
    System.out.println(s2);

格式化:

String s = String.format("name: %s, age: %d, height: %.2lf", "lisi", 20, 1.78);

字符或子串检索:找到这个子串,返回值是子串的开始位置,没有找到返回-1

字符:

indexOf(int ch)

indexOf(int ch, int fromIndex)      从偏移量fromIndex处查找

子串:

indexOf(String str)

indexOf(String str,int fromIndex)

返回子串或字符最后一次出现的位置

int lastIndexOf(int ch)

int lastIndexOf(int ch, int fromIndex)

int lastIndexOf(String str)

int lastIndexOf(String str, int fromIndex)

String s = "hello world!";
int pos = s.indexOf("world");
if(pos < 0){
    System.out.println("no");
}

修改字符串:

concat:字符串连接

replace:字符串替换

String trim():去掉字符串前后空白字符的方法

String toLowerCase():将字符串中的字母转换成小写的方法

String toUpperCase():将字符串中的字母转换成大写的方法

String s = "hello";
String news = s.concat("world");    //helloworld
String s1 = "abc"
String news1 = s1.replace('c','a');    //aba
String s2 = "abcDEF".toLowerCase();    //返回abcdef
String s3 = "abcDEF".toUpperCase();    //返回ABCDEF

字符串表示了定长、不可变的字符序列,即字符串对象的内容是不可修改的,任何修改字符串对象内容的方法,都会产生一个新的字符串对象

前缀后缀:

startsWith():判断前缀

endsWith():判断后缀

String s = "test.mp4";
if(s.endWith(".mp4")){
    System.out.println("yes");
}

StringBuilder

java提供了一个队字符串增减却不会产生新的对象的类,这个类就是StringBuilder,StringBuilder类标识了可变长和可写的字符序列。

StringBuilder构造方法:

StringBuilder()

StringBuilder(int capacity)

StringBuilder(String str)

StringBuilder s = new StringBuilder("hello");
System.out.println(s);    //hello
Ststem.out.println(s.length);    //5    
System.out.println(s.capacity);    //21

setLength()和ensureCapacity()

setLength可以改变StringBuilder类对象的长度,该方法将实例的长度设置为newlen,这个值必须是非负的

为了确保容量总是大于等于实例的长度,在调整实例的长度之前,可以用ensureCapacity()方法设置缓冲区大小

void ensureCapacity(int minimumCapacity)

charAt()和setCharAt()

charAt()可以得到单个字符的值,setCharAt()是被置值的字符的下标,而ch指定了该字符的新值

char charAt(int index)

void setCharAt(int index,char ch)

StringBuilder s = new StringBuilder("hello");
System.out.println(s.charAt(1));    //e
s.setCharAt(1,'i');
System.out.println(s);    //hillo

getChars()

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

srcBegin指定了子字符串开始时的下标,而srcEnd指定了该子字符串结束时下一个字符的下标,表示字符串从srcBegin到srcEnd-1位置上的字符。接受数组为dst,子字符串的位置由dstBegin指定

append()和insert()

append()方法将任一其他类型数据的字符串形式连接到调用StringBuilder对象的后面

String append(boolean b)

String append(char c)

String append(char[] str)

StringBuilder append(char[] str, int offset,int len)

StringBuilder append(double d)

StringBuilder append(float f)

StringBuilder append(int i)

StringBuilder append(long l)

StringBuilder append(Object obj)

StringBuilder append(String str)

insert()方法将一个字符串插入到StringBuilder的指定位置

StringBuilder insert(int offset, boolean b)

StringBuilder insert(int offset, char c)

StringBuilder insert(int offset, char[] str)

StringBuilder insert(int offset,double d)

StringBuilder insert(int offset, float f)

StringBuilder insert(int offset, int i)

StringBuilder insert(int offset, long l)

StringBuilder insert(int offset, Object obj)

StringBuilder insert(int offset, String str)

offset指插入点的下标

Object o = "hello";
String s = "goodbye";
char c[] = {'a','b','c','d'};
boolean b = true;
char ch = 'A';
int i = 7;
long l = 10000000;
float f = 2.5f;
double d = 666.666;
StringBuilder str = new StringBuilder();
str.insert(0,o).insert(0," ").insert(0,s);
str.insert(0,c);
str.append(l).append(f);
System.out.println(str);

delete()和deleteCharAt()

StringBuilder delete(int start, int end)

删除从start到end-1个字符

StringBuilder deleteCharAt(int index)

删除由index指定下标处的字符

StringBuilder s =new StringBuilder("hello");
s.delete(2,3);
System.out.println(s);    //helo
s.deleteCharAt(0);
System.out.println(s);    //elo

replace()

replace()完成在StringBuilder内部用一组字符代替另一组字符的功能

StringBuilder replace(int start, int end, String str)

StringBuilder s = new StringBuilder("hello world");
s.replace(0, 5, "hi");
System.out.println(s);    //hi world

reverse()

返回调用对象翻转后的对象

StringBuilder s = new StringBuilder("abcdef");
s.reverse();
System.out.println(s);    //fedcba

substring

String substring(int start)

String substring(int start, int end)

返回start到end-1的字符串

StringBuilder s = new StringBuilder("hello");
System.out.println(s.substring(2));    //llo
System.out.println(s.substring(0,3));    //hel

StringTokenizer(字符串标记)

StringTokenizer类在java.util包里,使用它之前需要import进来

eg: import java.util.StringTokenizer

StringTokenizer(String str)   使用默认的分隔符

StringTokenizer(String str, String delim)    delim是用来指定分隔符的一个字符串

String Tokenizer(String str,String delim,boolean returnDelims)   returnDelims为true,当字符串被分析时,分隔符也被作为标记返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

窗外藏深海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值