Java常用类--------String

版权声明:原创 https://blog.csdn.net/rambler_designer/article/details/78307888

前言

说到String类,可能大部分人会觉得自己很熟悉,包括我自己,可能在写程序过程中,String的使用甚至超过int,double这种类型,但是涉及到比较复杂的逻辑,必须对字符串进行一系列处理,才发现,自己对String这个类并没有这么熟悉,因此查阅API重新学习一下String类

String类:

public final class String extends Object implements Serializable, Comparable<String>, CharSequence

String类经常用来处理字符序列,由于java类在java.lang包中,默认引入,因此可以直接使用。Java把String定义为final类,因此String不能扩展子类。

构造方法:

和数组相似,使用String类创建一个字符串,字符串是对象

因此在创建字符串这个对象时,需要使用String的构造方法

1. 常量对象:

字符串常量对象是用双引号括起的字符序列,如“sss”;

2. 字符串变量:

我们可以使用String来声明字符串对象,

        String  name;

        由于字符串是对象,因此必须使用String的构造方法创建一个对象

3. String类常见的两种构造方法:

        ①String(char [ ])

        即,用一个字符数组全部元素构造一个字符串

    

        ②String(char a[ ],int startIndex,int count )

        即,将一个字符数组,把索引从startIndex开始的count个的元素构造一个字符串

4. 引用字符串常量对象:

        由于字符串常量是对象,因此可以把字符串常量的引用赋值给字符串变量

        String  s;

        s = “是素数”;

String类12个常用方法:

1. public int length( )

        返回字符串的长度

2. public boolean equals(String  s )

对象调用equals方法,比较当前字符串对象与参数是否相等

参数可以为字符串对象或者字符串常量

注意:如果对象调用equalsIgnore()方法,则比较时忽略大小写

3. public boolean startWith(String  s )

public boolean endWith(String  s ) 

对象调用两个方法,分别比较参数字符串实体是否等于当前字符串的前缀后缀

4. public int compareTo(String  s)

字符对象调用compareTo方法,按照字典顺序进行排序

比较的顺序,先比较第一个,若相同则比较下一位,逐步到末尾

若当前字符串大于参数字符串,则返回正值,否则返回负值

若相同,则返回 0

public int compareToIgnoreCase(),忽略大小写比较大小

5.  public boolean contains(String s)

字符串对象调用contains方法,判断当前字符串中是否含有参数字符串

参数字符串出现在当前字符串中必须连续,若含有,返回true,否则false

6. public int indexOf(String s)

返回当前字符串中第一次出现参数s的索引位置

如果没找到则,返回-1

若查找的是字符串,且查找成功,则返回当前字符串第一个字符的索引位置

String name = "I am a good student";

name.indexOf(“good”);返回7

7. public String subString ( int start , int end)

对象调用subString方法,将当前字符,从start,到end部分截取,不包括end

返回一个新的字符串

8. public String trim()

调用该方法,将当前字符串前后空格,制表符,等转义字符去掉,返回一个新的字符串

9. public char charAt( int index)

字符串调用该方法,返回当前下标单个字符

10. public String concat( String s)

方法实现将两个字符串拼接

字符串对象调用concat方法,将参数字符串拼接到当前字符串的后面

11. public String UpperCase()

12. public String LowerCase()

字符串对象调用,实现将当前字符串全部变为大写或者小写

字符串与基本数据类型的转化:

1. 将字符串转化为其他基本类型

java.lang包中的Integer,Byte,Short,Long,Float,Double类都有相应的类方法,

将字符串转化为相应的数据类型

比如

String  s = "123";

int x = Integer.parseInt(s);

x = 123;

其他的类似,方法名是parse+类型名,首字母大写

如parseByte,parseFloat等等

2. 将其他类型转化为字符串

同时String类也有将其他类型的数据,转化为字符串的类方法

public static String valueOf(byte,int ,long ,float,double五种类型可以选择);

例子:

利用main方法中的参数args字数组,传入几个字符,转换为double类型,并求和

package chapter_9;
import java.util.Scanner;
public class example9_10 {
	public static void main(String[] args) 
	{
		Scanner reader = new Scanner(System.in);
		
		double num = 0;
		double sum = 0;
		args = new String[5];
		for(int i=0; i<args.length; i++)
		{
			System.out.println("请输入第 "+(i+1)+" 个字符");
			args[i] = reader.nextLine();
		}
		for(String s: args) 
		{
			try 
			{
				num = Double.parseDouble(s);
				sum+=num;
			}
			catch(NumberFormatException exp)
			{
				System.out.println("输入非法字符");
				System.out.println(exp.toString());
			}
		}
		System.out.println("sum = "+sum);
	}
}

对象的字符串表示:

在java中,默认所有的类都是java.lang包中Object类的子类或者间接子类

Object类中有个public String toString();方法

一个对象调用该方法,可以获得该对象的字符串表示

返回的字符串形式为:

类所在包的名字。创建对象类的名字@对象引用的字符串表示

例:

package chapter_9;

public class toString extends Object
{
	public String toString()
	{
		return super.toString()+" I have rewritten this method"+" are you";
	}
	public static void main(String args[])
	{
		toString object = new toString();
		System.out.println(object.toString());
	}
}

运行结果:

chapter_9.toString@7852e922 I have rewritten this method are you

该类所在包chapter_9,类的名字toString,对象引用的字符串表示@7852e922

此例中使用了super关键字,由于子类重写了父类的toString方法,

因此子类需要使用super关键字调用被隐藏的toString方法

猜你喜欢

转载自blog.csdn.net/rambler_designer/article/details/78307888