String类,练习

来源:互联网 发布:java自动生成代码软件 编辑:程序博客网 时间:2024/05/16 18:52
/**
String类适用于描述字符事物。
那么它就提供了多个方法对字符串进行操作。


常见的操作有哪些?
1.获取
1.1 字符串中的包含的字符数,也就是字符串的长度。
int length():获取长度
1.2 根据位置获取位置上某个字符。
char charAt(int index);
1.3 根据字符获取该字符在字符串中的位置。
int indexOf(int ch):返回是的ch在字符串中第一次出现的位置。
int indexOf(int ch,int fromIndex);从fromIndex指定位置开始,获取ch在字符串中出现的位置。


int indexOf(int str):返回是的str在字符串中第一次出现的位置。
int indexOf(int str,int fromIndex);从fromIndex指定位置开始,获取str在字符串中出现的位置。

反向索引
int lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。 
int lastIndexOf(int ch, int fromIndex) 
 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。 
int lastIndexOf(String str) 
 返回指定子字符串在此字符串中最右边出现处的索引。 
int lastIndexOf(String str, int fromIndex) 
 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
2.判断
2.1字符串中是否包含某一个子串
boolean contains(str)
特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1,表示该str不在字符串中存在。
所以,也可以用于对指定判断是否包含。
if(str.intdexOf("aa")!=-1)包含。
而且该方法既可以判断又可以获取出现的位置。
2.2字符串是否有内容
boolean isEmpty():原理就是判断长度是否为0.
2.3字符串是否是以指定内容开头
boolean startsWith(str)
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[] data,int offset ,int count)
static String valueOf([]):


3.2 将字符串转成字符数组 **
char[] toCharArray()  


3.3 将字节数组转成字符串
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串


3.4 将字符串转成字节数组
byte[] getBytes();
3.5 将基本数据类型转换成字符串
   static String valueOf(int)
staic String valueOf(double)


3+"";//String valueOf(3);

特殊:字符串和字节数组在转换过程中,是可以指定编码表的


*/
class StringDemo 
{
public static void method_trans()
{
//将字符数组转成字符串
char [] arr ={'a','b','c','d','e','f'};
String a=String.copyValueOf(arr);
sop("a="+a);
String s1=new String (arr);
sop("s1="+s1);
String s=new String (arr,1,3);
sop("s="+s);
//将字符串转成字符数组
String s2= "zxujsjkii";
char[] chs=s2.toCharArray();
for (int x=0;x<chs.length ;x++ )
{
sop("chs="+chs[x]);
}
int j=3;
String b=String.valueOf(j);
sop("b="+b);
}


public static void method_is()
{
String str ="ArrayDemo.java";


//判断文件名是否是Array单词开头;
sop(str.startsWith("Array"));


//判断文件文件中是否是.java结尾。
sop(str.endsWith(".java"));


//判断文件中是否包含Demo.
sop(str.contains("Demo"));
sop(str.equals("ArrayDemo.java"));
sop(str.equalsIgnoreCase("ArrayDemo.Java"));
}

public static void method_get()
{
String str ="abcjdhfckl";


//长度
sop(str.length());
//根据索引获取字符
sop(str.charAt(3));//当访问到字符串不存在的角标时会发生StringIndexOutOfBoundsExceptin.
//根据字符获取索引
sop(str.indexOf('c',3));//如果没有找到,返回-1.
sop(str.indexOf("bc"));
//反向索引一个字符串出现位置
sop(str.lastIndexOf("c"));
}


public static void sop(Object obj)
{
System.out.println(obj);
}


public static void main(String[] args) 
{

method_get();
method_is();
method_trans();


/**
String s1="abc";
String s2=new String("abc");
String s3="abc";
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
System.out.println(s1==s3);//true  s1已经开辟空间,s3则不开辟空间。
*/
}
}
0 0