String类适用于描述字符串事物。
那么他就提供了多个方法对字符串进行操作。
常见的操作有哪些?
"abcd"
1.获取
1.1字符串中的包含的字符数,也就是字符串的长度
int length():长度。注意:数组的长度是没有arr.length
1.2根据位置获取位置上某个字符。
char charAt(int index);
1.3根据字符获取 的位置
int indexOf(int ch):返回的是ch在字符串中第一次出现的位置
int indexOf(int ch,int fromIndex):从fromIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str):返回的是str在字符串中第一次出现的位置
int indexOf(String str,int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置
2.判断。
2.1字符串是否包含某一个子串
boolean contains(str)
特殊之处:indexOf(str):索引str第一次出现的位置,如果返回-1,代表该str不在字符串中存在。
所以,也可以用于对指定判断是否包含
if(str.indexOf"aa"!=-1),而且该方法即可判断,有可以获取出现的位置
2.2字符串是否有内容:原理就是判断字符串长度是否为0
boolean isEmpty():原理就是判断长度是否为0,jdk1.6开始的功能
2.3字符串是否是以指定内容开头。
boolean startsWith();
2.4字符串是否是以指定内容结尾。
boolean endsWith(str);
2.5判断字符串内容是否相同,复写了Object类中equals方法
boolean equals(str);
2.6判断字符串是否相同,并忽略大小写。
boolean equalsIgnoreCase();
3.转换
3.1将字符数组转换成字符串
构造函数:String(char[])
String(char[]),offset,count);将字符数组中的一部分转换成字符串
静态方法:
static String copyValueOf(char[])
static String copyValueOf(char[],int offset,count)
static String valueOf(char[]);
3.2将字符串转换成字符数组
char[] toCharArray(),不需要传任何参数
3.3将字节数组转换成字符串。
String(byte[]);
String(byte[],offset,count):将字节数组一部分转换成字符串。
###3.4将字符串转换成字节数组
byte[] getBytes();
3.5将基本数据类型转换成字符串。
static String valueOf(int)
static String valueOf(double)
特殊:字符串和字节数组在转换过程中是可以指定编码表
4.替换
String replace(oldchar,newchar);如果被替换的字符串不存在,还是原串
5.切割
String[] split(regex);
6.子串(substring,s是小写)
String substring(begin);//从指定位置结束,如果角标不存在,提示角标越界
String substring(begin,end);//包含头不包含尾;获取所有s.substring(0,s.lentth());
7.转换
7.1将字符串转成大写或小写
String toUpperCase();
String toLowerCase();
7.2将字符串两端的多个空格去除
String trim();
7.3对两个字符串进行自然顺序的比较
int compareTo(String);
class StringMethodDemo
{
public static void main(String args[])
{
/*String s1 = "abc";
String s2 = new String("abc");
String s3 = "abc";
System.out.println(s1==s2);//结果false
System.out.println(s1==s3);//结果true
*/
//method_is();
//method_trans();
//method_split();cc
//method_subString();
method_7();
}
public static void method_7()
{
String s = " Hello Java ";
sop(s.toLowerCase());
sop(s.toUpperCase());
sop(s.trim());
String s7 = "abc";
String s8 = "aac";
sop(s7.compareTo(s8));//结果1,第一个数a是相同的,第二位b比a大1,第三个不再比
}
public static void method_subString()
{
String str4 = "abjikdldkld";
String str5 = str4.substring(5);
String str6 = str4.substring(5,9);
sop("str5="+str5);
}
//切割
public static void method_split()
{
String s = "zhangsan,lisi,wangwu";
String[] arr = s.split(",");
for(int x = 0;x<arr.length;x++)
{
sop("arr[]="+arr[x]);
}
}
public static void method_replace()
{
String s = "hello java";
String s1 = s.replace('a','n');
sop("s="+s);//结果:hello java字符串一旦初始化,
sop("s="+s1);//结果:hello jnvn
}
public static void method_trans()
{
char[] ch= {'a','b','c','d','e','f','g'};
//方法1:构造函数法:将字符数组转换成字符串
String str2 = new String(arr,1,3);//从角标1,右边3个,结果是bcd
//方法2:静态方法:将字符数组转换成字符串
String str3 = String.copyValueOf(ch,4,3);
sop("str3="+str3);
/*
//将字符串转换成字符数组char[] toCharArray()
String s1 ="jdkdjdjj";
char[] ch = s1.toCharArray();
//遍历数组打印
for(int x=0,x<ch.length;x++)
{
sop("ch[x]"+ch[x]);
}
//将字节数组转换成字符串
byte[] b={(byte)0xB8,(byte)0xDF,(byte)0xCB,(byte)0xD9};
String str= new String (b);
//将字符串转换成字节数组
sop(str1.startsWith("Arrya"));
*/
}
public static void method_is()
{
String str1 = "ArrayDemo.java";
//判断文件名称是否包含Demo
sop(str1.contains("Demo"));
sop(str1.isEmpty());
//判断文件名称是否是java文件
sop(str1.endsWith(".java"));
//判断文件名称是否是Array单词开头
sop(str1.startsWith("Arrya"));
}
public static void method_get()
{
String str = "abcdeakpfab";
//长度
sop(str.length());
//根据索引获取字符。
sop(str.charAt(30));//当访问不到字符串不存在的角标是会发生StringIndexOutOfBoundsException
//根据字符获取索引
//sop(str.indexOf('a',4));//如果没有找到返回-1
sop(str.indexOf("ab",6));
//反向索引一个字符出现位置。
sop(str.lastIndexOf("a"));//返回的还是从左往右的角标位置
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
网友评论