菜鸟学Java之第七章(常用类)

第七章.常用类


主要内容:1. String类  2.StringBuffer类  3.String类与StringBuffer类比较  4.StringTokenizer类  5.日期


 

 

案例:简易字符串编辑器的所有功能图所示,使用本编辑器,可以对字符串进行7种常规处理,例如字符串比较,字符串搜

索,字符串替换等。

import java.text.*;
import java.util.*;
public class StringEditor {
	public static void main(String[] args) {
		boolean flag=true;
		Scanner scanner=new Scanner(System.in);
		int choice;
		while(flag){
		ShowDate();
		System.out.println("请选择所要进行的操作(输入操作序号):");
		System.out.println("--------------------------------------");
		System.out.println("0.退出");
		System.out.println("1.字符串比相同");
		System.out.println("2.字符串搜索");
		System.out.println("3.字符串替换");
		System.out.println("4.字符串截取");
		System.out.println("5.字符串反转");
		System.out.println("6.字符串追加");
		System.out.println("7.字符串拆分");
		System.out.println("--------------------------------------");
		choice=scanner.nextInt();
		switch(choice)
		{
		case 0:
		{
			flag=false;
			break;
		}
		case 1:
		{
			String str1,str2;
			Scanner scanner1=new Scanner(System.in);
			System.out.println("请输入一个字符串:");
			str1=scanner1.nextLine();
			System.out.println("请输入与之比较的字符串:");
			str2=scanner1.nextLine();
			StringCompare(str1,str2);
			break;
		}
		case 2:
		{
			String str1,str2;
			Scanner scanner1=new Scanner(System.in);
			System.out.println("请输入一个字符串:");
			str1=scanner1.nextLine();
			System.out.println("请输入想要搜索到的字符串:");
			str2=scanner1.nextLine();
			StringSearch(str1,str2);
			break;
		}
		case 3:
		{
			Scanner scanner1=new Scanner(System.in);
			System.out.println("请输入一个欲处理字符串:");
			String str=scanner1.nextLine();
			System.out.println("请输入被替换字符串:");
			String oldStr=scanner1.nextLine();
			System.out.println("请输入替换字符串:");
			String tempStr=scanner1.nextLine();
			StringReplace(str,oldStr,tempStr);
			break;
		}
		case 4:
		{
			Scanner scanner1=new Scanner(System.in);
			System.out.println("请输入一个欲处理字符串:");
			String str=scanner1.nextLine();
			System.out.println("请输入截取字符串开始索引(索引值从0开始):");
			int begin=scanner1.nextInt();
			System.out.println("请输入截取字符串结束索引:");
			int end=scanner1.nextInt();
			StringSub(str,begin,end);
			break;
		}
		case 5:
		{
			Scanner scanner1=new Scanner(System.in);
			System.out.println("请输入一个需反序字符串:");
			String str=scanner1.nextLine();
			StringReverse(str);
			break;
		}
		case 6:
		{
			Scanner scanner1=new Scanner(System.in);
			System.out.println("请输入原字符串:");
			String str=scanner1.nextLine();
			System.out.println("请输入想要追加的字符串:");
			String tempStr=scanner1.nextLine();
			StringAppend(str,tempStr);
			break;
		}
		case 7:
		{
			Scanner scanner1=new Scanner(System.in);
			System.out.println("请输入想要拆分的字符串:");
			String str=scanner1.nextLine();
			System.out.println("请输入拆分字符串的分隔符号:");
			String delim=scanner1.nextLine();
			StringSplit(str,delim);
			break;
		}
		default:
		{
			System.out.println("您没有选择任何操作!");
			break;	
		}	
		}
	}
	}	
	public static void StringCompare(String str1,String str2){
		if(str1.equals(str2))
			System.out.println("两字符串相同!");
		else
			System.out.println("两字符串不同!");
	}
	public static void StringSearch(String str1,String str2){
		int length=str1.length();
		System.out.println("查找字符串\""+str1+"\"中所有"+str2+"的索引值:");
		for(int i=0;i<length;i++){
			i=str1.indexOf(str2, i);
			if(i<0) return;
			System.out.println(str2+":"+i+"\t");	
		}
	}
	public static void StringReplace(String str,String oldStr,String tempStr){
		String newStr=str.replace(oldStr, tempStr);
		System.out.println("替换后的字符串:"+newStr);
	}
	public static void StringSub(String str,int begin,int end){
		String subStr=str.substring(begin, end);
		System.out.println("截取后的字符串:"+subStr);
	}
	public static void StringReverse(String str){
		StringBuffer buffer=new StringBuffer(str);
		StringBuffer resultBuffer=buffer.reverse();
		System.out.println("字符串"+str+"的反序字符串:"+resultBuffer.toString());
	}
	public static void StringAppend(String str,String tempStr){
		StringBuffer buffer=new StringBuffer(str);
		buffer.append(tempStr);
		System.out.println("追加后的字符串:"+buffer.toString());
	}
	public static void StringSplit(String str,String delim){
    	StringTokenizer tokenizer=new StringTokenizer(str,delim);
    	int number=tokenizer.countTokens();
    	String temp=null;
    	System.out.println("\n\""+str+"\"字符串共有"+number+"个语言符号:");
    	while(tokenizer.hasMoreTokens()){
    		temp=tokenizer.nextToken();
    		System.out.print(temp+"\t");
    	}
    }
	public static void ShowDate(){
		Date dt=new Date();
		DateFormat df=new SimpleDateFormat("yyyy年MM月dd日  EEE HH:mm:ss");
		String nowTime="";        
		nowTime= df.format(dt);
		System.out.println("\n");
		System.out.println("--------------------------------------");
		System.out.println("当前时间:"+nowTime);
		System.out.println("--------------------------------------");
	}
}

7.1——String类

一、创建String字符串

1.采用声明普通变量的方法

语法格式:

    String 对象名=字符串类型数据;

例如:

    String str1="hello";

     String str1;    //先定义后赋值

     str1="hello";  

                                                                String类构造方法

二、String类的常用操作及方法

1. 获得字符串长度

方法:int length()

语法:字符串名.length();

功能:返回字符串的长度

例如:int  length=str1.length();

 

 

 

2.字符串比较

1boolean equals ( Object anObject

功能:将当前字符串与参数指定的对象比较,如果相同,返回true,否则返回false

2boolean equalsIgnoreCase ( String anotherString )

功能:与boolean equals ( Object anObject )功能相似,忽略大小写

 

3.字符串检索

1int indexOf(String str)

功能:返回第一次出现的指定子字符串在此字符串中的索引

例如:String s="青春无悔";

     int index=s.indexOf("青春");

     执行后,index的内容是0

2int indexOf(String str, int startIndex)

功能:从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。

例如

    String s="青春无悔无悔青春";

    int index=s.indexOf("青春"3);

3int lastIndexOf(String str)

功能:返回在此字符串中最右边出现的指定子字符串的索引。 

例如:String s="青春无悔无悔青春";

    int index=s.indexOf("青春");

    执行后,index的内容是6

4int lastIndexOf(String str, int startIndex)

功能:从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。

例如:String s="青春无悔无悔青春青春无悔";

    int index=s. lastIndexOf("青春", 5);

    执行后,index的内容是7

 

4.字符串替换

1String concat(String str)

功能:将指定字符串连接到当前字符串结尾。

例如:s1="abc";

    s2="def";

    String s3=s1.concat(s2);

     执行后,s3的内容是abcdef

2String replace(char oldCharchar newChar)

功能:用newchar字符替换当前字符串中的oldchar字符得到新的字符串, 既支持字符的替换,也支持字符串的替换。

例如:

    String sTemp=“There is a apple”;

    String temp;     temp=sTemp.replace(‘e’,’A’);

    执行后,temp的内容是Th ArA is a applA

3String toLowerCase( )

功能:将字符串中的所有字符从大写改为小写

例如:String s="STUDENT";

    String index=s.toLowerCase ();

     执行后,index的内容是“student

4String toUpperCase( )

功能:将字符串中的所有字符从小写改为大写

例如:String s="student";

    String index=s.toUpperCase ();

     执行后,index的内容是“STUDENT

5public String trim()

1)功能:返回一个前后不含任何空格的调用字符串的副本

例如:String s="  青春无悔   ";

   String index=s.trim();

   执行后,index的内容是“青春无悔”

2String subString(int beginIndex,int endIndex)

功能:提取某个区间内的字符串

例如:String s="青春无悔无悔青春";

    String index=s.substring(2,6);

    执行后,index的内容是无悔无悔

 

5.字符串截取

1String subString(int beginIndex)

功能:提取从某位置开始的字符串

例如:String s="青春无悔";

    String index=s.substring(1);

    执行后,index的内容是"春无悔"


7.2——StringBuffer

一、创建StringBuffer对象

1public StringBuffer()

功能:构造一个不带字符的字符串缓冲区,初始容量为16个字符。

例如:StringBuffer s=new StringBuffer();

2public StringBuffer(int capacity)

功能:构造一个不带字符,具有指定初始容量的字符串缓冲区。

例如:StringBuffer s=new StringBuffer(6);

3public StringBuffer( String str)

功能:构造一个字符串缓冲区,并将其内容初始化为String对象str指定的字符串内容。该字符串的初始容量为 16 加上字符串参数的长度。该构造方法常用来将一个String类对象转换为StringBuffer类对象。

例如:StringBuffer s=new StringBuffer(“apple”);

 

二、StringBuffer类常用方法

1. int capacity()

  功能:查看当前StringBuffer对象的缓冲区容量

  例如

      StringBuffer str1=new StringBuffer(100);

      int x=str1.capacity();

      执行后,x的内容是100

2. StringBuffer insert(String str)

功能:在指定位置插入新内容

例如

StringBuffer str1=new StringBuffer("JAVA");

String str2="_learning";

str1.insert(2,str2);

执行后,str1的内容是JA_learningVA

3. StringBuffer delete(int start,int end)

功能:删除指定位置上的内容

例如

StringBuffer buffer=new StringBuffer(“Hello,world!”);

buffer.delete (6,11);

执行后,str1的内容是Hello,

4. StringBuffer reverse()

功能:将当前StringBuffer对象反序排列

5. StringBuffer append(String str)

功能:给当前StringBuffer对象追加一个str字符串对象

6. String toString()

   功能:该方法将创建一个与该对象内容相同的字符串对象

   例如

StringBuffer str1=new StringBuffer("JAVA");

str1.toString ();

执行后,str1的内容是JAVA


7.3——String类与StringBuffer类比

一、字符串串连符

字符串串联符号“+”,支持进行String字符串的连接,Java提供了其他变量或对象到字符串的转换这一特殊支持,因此串联运算符也可以在String字符串与其他类型之间进行串联。其优先级与结合性与算术运算符“+”相同

例如

String s="你好",s1;

s1="abc"+"def";

二、StringStringBuffer类的联系与区别

    String类与StringBuffer类都是用来处理字符串的类,两者之间既有联系,也有区别。先从以下方面进行总结,方便大家理解和正确应用这两个字符串处理类。

String类和StringBuffer类的字符串内的字符索引都是以0开始。

两个类都提供了一些相同的操作,如lengthcharAtsubStringindexOf,且他们在两个类中的用法也相同。

String类表示常量字符串,不可以改变;StringBuffer类表示可变字符串,提供了若干改变字符串的方法。

String类覆盖了Object类的equals方法,用来进行字符串内容的比较,而StringBuffer类没有覆盖equals方法,因此其只是做基本的引用的比较。

两个类都覆盖了Object类的toString方法,但各自的实现方式不一样,String类的toString方法返回当前String实例本身的引用,而StringBuffer类的toString方法返回一个以当前StringBuffer的缓冲区中的所有字符为内容的新的String对象的引用。


7.4——StringTokenizer类

一、StringTokenizer类对象的创建

1. StringTokenizer(String str)

  功能:为指定字符串str构造一个分析器,使用默认的分隔符集合:空格符(若干个空格符看做一个空格符)、换行符、回车符、Tab符和换页符。

  例如

StringTokenizer tokenizer1=new StringTokenizer(“we are students”);

执行后,为字符串we are students构造了一个分析器,分隔符为空格。

2.StringTokenizer(String str,String delim)

功能:为指定字符串str构造一个分析器,使用指定的分隔符delim

例如

StringTokenizer tokenizer2=new StringTokenizer(“site www.itzcn.com”,”.”);

执行后,为字符串site www.itzcn.com构造了一个分析器,分隔符为点。

 

二、StringTokenizer类常用方法

1. int countTokens()

功能:返回字符串中的语言符号个数

例如:StringTokenizer tokenizer2=new StringTokenizer(“site www.itzcn.com”,”.”);

 int temp=tokenizer1.countTokens();

执行后,temp的值为3

2. boolean hasMoreToken()

功能:判断字符串中是否还有语言符号。若有,返回true;否则返回false

例如

StringTokenizer tokenizer2=new StringTokenizer(“www.itzcn.com”);

      if(tokenizer2. hasMoreToken())

       System.out.println(“Yes”);

      else

System.out.println(“No”);

执行后,输出提示信息No

 

3. String nextToken()

  功能:逐个获取字符串中的语言符号

  例如

StringTokenizer tokenizer2=

new StringTokenizer(“site www.itzcn.com”,”.”);

String temp;

temp=tokenizer1.nextToken();

执行后,变量temp中内容为site www。如果要获取tokenizer2中的所有语言符号,需要一个循环。


7.5——日期

一、 Date类对象的创建

1.创建一个当前时间

Date d = new Date();

默认是创建一个代表系统当前日期的Date对象。Date类主要用于获得本地当前时间,其表示时间的默认顺序是星期、月、日、小时、分、秒、年。

 

2. 创建一个我们指定的时间的Date对象

Date d1 = new Date(2013-1900, 5-1, 5);

执行后,创建了一个代表201355日的Date对象,该带参数的构造方法,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,实际需要代表的月份减去1以后的值。

 

二、常用构造方法介绍

1SimpleDateFormat()

功能:用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat

例如:Date dt=new Date();

DateFormat df1=new SimpleDateFormat();

String nowTime="";       

nowTime= df1.format(dt);

System.out.println("当前时间:"+nowTime);

执行后,输出结果为当前时间:15-1-30 下午12:30

2SimpleDateFormat(String pattern)

功能:用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat

例如:Date dt=new Date();

DateFormat df=new SimpleDateFormat("yyyyMMdd  EEE HH:mm:ss");

String nowTime="";       

nowTime= df.format(dt);

System.out.println("当前时间:"+nowTime);

执行后,输出结果为当前时间:当前时间:20150130  星期五 12:30:28

 

一、Calendar类对象的创建

        Calendar类是一个抽象类,且Calendar类的构造方法是protected的,因此不能使用new关键字来实例化一个Calendar对象,只需要使用getInstance()方法创建即可。

1.创建一个代表系统当前日期的Calendar对象

   Calendar c = Calendar.getInstance();    

2.创建一个指定日期的Calendar对象

        使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成

例如,要创建一个代表201355日的Calendar对象,可以使用下面的语句:

Calendar c1 = Calendar.getInstance();

c1.set(2013, 5 - 1, 5);

二、Calendar类对象字段类型

Calendar.YEAR——年份

Calendar.MONTH——月份

Calendar.DATE——日期

Calendar.DAY_OF_MONTH——日期,和上面的字段意义完全相同

Calendar.HOUR——12小时制的小时

Calendar.HOUR_OF_DAY——24小时制的小时

Calendar.MINUTE——分钟

Calendar.SECOND——秒

Calendar.DAY_OF_WEEK——星期几

                                                         Calendar类常用方法             

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值