Java教程

Day11---学习Java第二弹

本文主要是介绍Day11---学习Java第二弹,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

2021-07-21

数组与字符串

Java中字符串可以分为两大类:

1)String类

2)StringBuffer和StringBuilder类

两者区别:String类,创建之后便不会做修改和变动

                  StringBuffer类和StringBuilder类,创建后允许做更改和变化,

其中StringBuilder是JDK1.5增加的,它是非线程安全。

String类是immutable,不可修改的,所以当我们用+,=这些运算的时候会重新生成一个新的String类的实例,在循环中使

用String类的+=运算会带来一定的效率问题。

 

String类声明与创建

字符串声明:String stringName;

字符串创建:StringName = new String(字符串常量);或stringName = 字符串常量;

例如:

String name;
name = "Jack";        //String name = new String("Jack");

 

String类构造方法

1,public String(),无参构造方法,用来创建空字符串的String对象。

例如:String string1 = new String();   则有string1==null

 

2,public String(String value),用已知的字符串value创建一个String对象。

例如:String str2 = new String("Helllo,world!");则str2 = "Hello,world!"
String str3 = new String(str2);则str3 = "Hello,world!"

 

3,public String(char[] value),用字符数组value创建一个String对象。

例如:char[] value = {"a","b","c","d"};
String str4 = new String(value);//相当于String str4 = new String("abcd");

 

4,public String(char chars[], int startIndex, int numChars),用字符数组chars的startIndex开始的numChars个字符创建一个String对象。

例如:char[] value = {"a","b","c","d"};
String str5 = new String(value, 1, 2);//相当于String str5 = new String("bc");

 

String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。java把String类声明的final类。String类对象创建后不能修改,由0或多个字符组成,包含在一对双引号之间。String类中有很多方法,可以查看API(Day5---学习Java第二弹)(偏后) 理解。

 

1、求字符串长度

public int length() //返回该字符串的长度

 

2、求字符串某一位置字符

public char charAt(int index)//返回字符串中指定位置的字符;注意字符串中第一个字符索引是0,最后一个是length()-1。

 

3、提取子串

用String类的substring方法可以提取字符串中的子串,该方法有两种常用参数:

1)public String substring(int beginIndex) //该方法从beginIndex位置起,从当前字符串中取出剩余的字符作为一个新的字符串返回。

2)public String substring(int beginIndex, int endIndex) //该方法从beginIndex位置起,从当前字符串中取出到endIndex-1位置的字符作为一个新的字符串返回。

String str1 = new String("abcdefg");
String str2 = str1.substring(2);//str2 = "cdefg";
String str3 = str1.substring(2,5);//str3 = "cde";

 

 

4、字符串比较
1)public int compareTo(String anotherString)//该方法是对字符串内容按字典顺序进行大小比较,通过返回的整数值指明当前字符串与参数字符串的大小关系。若当前对象比参数大则返回正整数,反之返回负整数,相等返回0。

2)public int compareToIgnore(String anotherString)//与compareTo方法相似,但忽略大小写。

3)public boolean equals(Object anotherObject)//比较当前字符串和参数字符串,在两个字符串相等的时候返回true,否则返回false。

4)public boolean equalsIgnoreCase(String anotherString)//与equals方法相似,但忽略大小写。

String  name = "Zhang rong";
name.compareTo("Hello,World!");        //name.compareTo("Hello,World!")返回正整数 4
name.compareTo("Yellow");                //name.compareTo("Yellow")返回负整数 -13
name.compareTo("Zhang rong");        //返回0
name.equal("Zhang");        //返回false
String name = "Zhang rong";
System.out.println(name.equalsIgnoreCase("Zhang rong"));        //输出true

 

 5、字符串连接
public String concat(String str)//将参数中的字符串str连接到当前字符串的后面,效果等价于"+"。

String name1 = "Tom";
String name2 = "son";
System.out.println(name1 + name2);        //输出Tomson

 

6、字符串中单个字符查找

1)public int indexOf(int ch/String str)//用于查找当前字符串中字符或子串,返回字符或子串在当前字符串中从左边起首次出现的位置,若没有出现则返回-1。

2)public int indexOf(int ch/String str, int fromIndex)//改方法与第一种类似,区别在于该方法从fromIndex位置向后查找。

3)public int lastIndexOf(int ch/String str)//该方法与第一种类似,区别在于该方法从字符串的末尾位置向前查找。

4)public int lastIndexOf(int ch/String str, int fromIndex)//该方法与第二种方法类似,区别于该方法从fromIndex位置向前查找。


7、字符串中字符的大小写转换

1)public String toLowerCase()//返回将当前字符串中所有字符转换成小写后的新串

2)public String toUpperCase()//返回将当前字符串中所有字符转换成大写后的新串

String name ="Jack Ma"; 
System.out.println(name.toLowerCase());
System.out.println(name.toUpperCase());
输出:
jack ma
JACK MA

 

 

8、字符串中字符的替换

1)public String replace(char oldChar, char newChar)//用字符newChar替换当前字符串中所有的oldChar字符,并返回一个新的字符串。

2)public String replaceFirst(String regex, String replacement)//该方法用字符replacement的内容替换当前字符串中遇到的第一个和字符串regex相匹配的子串,应将新的字符串返回。

3)public String replaceAll(String regex, String replacement)//该方法用字符replacement的内容替换当前字符串中遇到的所有和字符串regex相匹配的子串,应将新的字符串返回。

String str = "asdzxcasd";
String str1 = str.replace('a','g');//str1 = "gsdzxcgsd";
String str2 = str.replace("asd","fgh");//str2 = "fghzxcfgh";
String str3 = str.replaceFirst("asd","fgh");//str3 = "fghzxcasd";
String str4 = str.replaceAll("asd","fgh");//str4 = "fghzxcfgh";

 

 

这篇关于Day11---学习Java第二弹的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!