Java基础知识(字符串String类)
�。 2019-04-02 04:09:19 /*
* 一. String 字符串常量的创建
*/
//直接初始化一个String类的对象
String str="刘"+"三"+"好";
System.out.println(str);
//通过String类提供的构造方法创建字符串的对象
String name=new String("刘三好");
//+()是类的构造方法。("刘三好")-->name=”刘三好“
//此时创建的name是一个空串 +”刘三好“后才有东西 存的是放东西的空间的地址 new是分配空间 一个存放地址的变量(指针)
//说明:构造方法对于类是十分重要的,new操作符为对象分配内存后将通过调用类的构造方法来确定对象的初始状态。
//也就是说,对象的初始化是通过构造方法来完成。
System.out.println(name);
/*
* String();创建字符串
* String(byte[]);创建字符串,其值由一个字节数组的内容设置
* String(char[]);//创建字符串,其值由一个字符数组的内容设置
* String(byte[],int,int);//参数表示字节数组的偏移量(从偏移的地方起)和长度(字节长度)
* String(char[],int,int);//参数表示字符数组的偏移量和长度
* String(String);//不建议使用这种具有字符串直接值参数的构造器,它创建了两个相同的字符串
* String(StringBuffer);//由字符串缓冲区设定其值
*/
public class String_Demo2 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
/*
* 二.String类对象的常用操作
*/
/*
1.字符串的访问
*/
String str="欢迎来到Java语言";
int n=str.length();//该方法返回字符串的长度,这里字符串长度指字符串中Unicode字符的数目
System.out.println(str+" "+n);
/*
2.搜索字符或字符串
左---->
<----右 0123456789abcd
索引(String str[]="how do you do.";在字符串中第一个字母h的索引为0,b的索引为1,以次类推,最后一个自负的索引为length()-1。
*/
String myString="How do you do.";
int sy1=myString.indexOf('o'); //从给定的字符串的左侧开始搜索指定的字符,并返回首次出现的索引。
int zy1=myString.lastIndexOf('o');//从……右侧开始……。
System.out.println(sy1+" "+zy1);
int sy2=myString.indexOf("do");
int zy2=myString.lastIndexOf("do");
System.out.println(sy2+" "+zy2);
int sy3=myString.indexOf('o',2);//从给定串的左侧2的索引开始搜索指定的字符,并返回首次出现的索引('o'的索引)。
int zy3=myString.lastIndexOf(' ',3);//从……右侧2的索引开始……。
System.out.println(sy3+" "+zy3);
int sy4=myString.indexOf("yo",3);//从给定串的左侧3的索引开始搜索指定的字符,并返回首次出现的索引('y'的索引)。
int zy4=myString.lastIndexOf("do",5);
System.out.println(sy4+" "+zy4);
/*
3.截取字符
*/
//方法一 char charAt(int index)方法->得到字符中指定索引位置上的字符。
String c="陈威 你真 silly!";
char ch1=c.charAt(7);
System.out.println(ch1);
//方法二 void getChars(int Start, int End, char objstr[], int objsrtStart)
//->在字符串对象中截取子串。^索引开始 ^索引结束end-1 ^子串存入数组数 ^指定起始位置
System.out.println(" ");
String d="This is a demo of the getChar method.";
int strat=5;
int end=7;
char substr[]=new char[end-strat];
d.getChars(strat, end, substr, 0);
System.out.println(substr);
//方法三 String substring(int startIndex) 用于截取指定位置后面的内容作为子串
// (1).substring(int beginindex)
// ^返回给定串中从beginindex起到串尾止的一个子串
// (2).substring(int beginindex,int endindex)
// ^返回给定串中从beginindex起到endindex-1止的一个子串,该子串长度为endindex-beginindex。
System.out.println(" ");
String source="日一二三四五六",weekday;
for(int i=0;i<7;i++)
{
weekday=source.substring(i,i+1);
System.out.println("星期"+weekday);
}
/*
4. 字符串比较..>字符串比较也是通过String类提供的方法实现的。
*/
// 方法一
// (1). equals()方法和equlsIgnoreCase()方法
// 同:检验两个字符是否相等。返回值均为 布尔型true或false。
// 不同:equlsIgnoreCase()比较时不区分大小写。
// (2). startWith()方法和endsWith()方法
// 同:用于判断给定字符串的起始子串和终止子串是否与参数中指定的子串相同。返回值为布尔型
//例:
System.out.println(" ");
String f1=new String("abc");
String f2=new String("abc");
String f3=new String("ABC");
System.out.println(f1.equals(f2));
System.out.println(f1.equals(f3));
System.out.println(f1.equalsIgnoreCase(f3));
//方法二
// compareTo()方法 和 compareToIgnoreCase()方法
// 同:用于比较给定字符串与参数中指定的字符串的大小。
// 返回值为整形(如果返回值大于0,则给定串比参数中的串大;如果返回值小于0,则给定串比参数中的串小;若两个字符串相等,返回0)。
// 不同:compareToIgnoreCase()方法 在比较时不区分字母大小写
System.out.println(" ");
String y1=new String("I am fun.");
String y2=new String("thank you.");
String y3=new String("I am fun.");
String y4=new String("i am Fun.");
System.out.println(y1.compareTo(y2));
System.out.println(y1.compareTo(y3));
System.out.println(y1.compareToIgnoreCase(y4));
System.out.println(y1.compareTo(y4));
System.out.println(y2.compareToIgnoreCase(y1));
/*
* 5.字符串修改
*/
//方法一 concat(Sting str)方法
// ^该方法的参数为一个String类的对象,作用是将参数中的字符串str连接到原来字符串的后面,例如:
String k1="欢迎学习Java语言";
String k2;
k2=k1.concat("Java语言");
System.out.println(" ");
System.out.println(k1);
System.out.println(k2);
//方法二 String replace(char oldchar,char newchar)方法
// ^其功能是将给定字符串中所有的oldchar字符用newchar字符进行替换,结果得到一个新的字符串。例如:
System.out.println(" ");
String strObj1="Sun";
String strObj2 = strObj1.replace("Su", "fu");
System.out.println(strObj2);
//方法三 tring()方法
//该方法的功能是将一个字符串两端的空格字符截掉,得到一个两端不含有空格的新字符串。例如:
System.out.println(" ");
String q1=" 欢迎 ";
String q2="学习 java.";
System.out.println(q1.trim()+q2);
//方法四 toUpperCase()方法 和 toLowerCase()方法
// ^^同:将给定字符串中所有的字母分别转换成大写或小写。例如:
System.out.println(" ");
String r1="aAbBcCdD",r2,r3;
r2=r1.toUpperCase();
r3=r1.toLowerCase();
System.out.println(r2);
System.out.println(r3);
//注意 : 此时对 r1 中的字符串没有影响,仍然为aAbBcCdD.
/*
* 6.字符串的类型转换
*/
//类型标识符.valueOf(Object obj)用于不同类型间的转换。例如:
System.out.println(" ");
String g1,g2="3.14159";
char ch='a';
float pi;
g1=String.valueOf(ch); //将字符型转换为String型
pi=Float.valueOf(g2); //将字符型转换为Float型
System.out.println(String.valueOf(Math.PI));//将数值类型转换为String型
//类型标识符.toString(Object obj)用于将 Object 转换为字符串型。该方法可以重载,例如:
System.out.println(" ");
String s=Integer.toString(123,8);// 将十进制123转换为八进制数据
System.out.println(s); //输出为173
}
}