我的Java之路(5)

还是先谈谈看了前几章的感受吧。

虽然经常听老师或同学说java觉得与C++很类似,看了这几张后才真正体会到了java与C++的异同点。

总体觉得java比C++简单的多。因为java中有很多方法已经写好了放到了其他包中,要想用到这个方法,只需要把这个包引入进来。就可以直接用,不必重写方法,(当然自己也可以重写这个方法)。而且java中没有指针这个是很多人头痛的东西(我就比较头痛指针),而且java提供了接口和面像抽象,大大简化了程序,使程序易修改、易扩展。

下面总结下今天看的东西

今天主要看了字符串和正则表达式

java可以使用java.lang包中的String类创建一个字符串常量,因此字符创常量是一个类类型的变量,是一个对象。

创建字符串变量。

String s;

s=new String(“we are student”);也可以一步完成:String s=new String("we are student");

也可以使用一个已创建的字符串创建另一个字符串。如:String tom=new String(s);

(1)String(char a[])—用一个字符数组a创建一个字符串对象。如:

char a[]={'b','o','y'};

String s=new String(a);

(2)char a[]={'s','t','b','u','s','n'};

String s=new String(a,2,3);

也可以把字符串常量的引用赋值给一个字符串变量。

Sting s1;

s1="how are you"

String类的常用方法

(1)public int length()

(2)public boolean equals(String s)比较当前的字符串对象的实体是否与参数指定 的字符串s的实体相同。如:

String tom=new String("we are students");

String boy=new String("you are students");

tom.equals(boy)的值是false,注意大小写区分。若调用public boolean eaualsIgnoreCase(String s),比较式忽略大小写。

(3)public boolean contains(string s)判断字符串对象是否含有参数指定的字符串S;如 tom.contains("stu")的值是true。tom.contains("ok")的值是false

(4)public boolean startsWith(String s)判断当前字符串对象的前缀是否是参数指定的的字符串s

和public boolean endsWith(String s)判断当前字符串对象的后缀是否是参数指定的的字符串s

(5)public int compareTo(string s)按字典序与参数s指定的字符串比较大小。如果当前字符串与s相同,该方法返回0,当前字符串对象大于s,返回正值。小于s,返回负值。

如String str="abcde";    str.compareTo("boy")小于0.    str.compareTo("aba")大于0;

(6)public int indexOf(String s)字符串检索。

(7)public String substring(int startpoint)获得一个当前字符串的字串。

(8)public String replaceAll(String old,String new)字符串对象调用该方法获得一个字符串对象,该字符串对象是通过用参数new指定的字符串替换s中由old指定的所有字符串而得到的字符串。

(9)public String trim()字符串通过调用方法trim()得到一个字符串对象,该字符串对象是去掉前后空格后的字符串。

字符串与基本数据的相互转化

java.lang包中的Integer类调用其类方法如下:

public static int parsentInt(String s)将数字格式的字符串转化为int类型数据。

对象的字符串表示:可以通过重写toString()方法来规定对象的字符串格式P117

字符串与字符数组;String类提供了将字符串存放到数组中的方法.

字符串转化文字节数组。(P118)

StringBuffer类

String 字符串不能修改、删除、或替换。即一个String对象一旦创建,实体是不可以在发生变化。。

所以引进了StringBuffer类,该类能创建可修改的字符串序列,即该类的对象的实体的内存空间可以自动的改变大小,便于存放一个可变的字符串。一个StringBuffer对象调用append()方法可以追加字符串序列。例如:

StringBuffer s=new StringBuffer("I love you ");

对象s调用append()再追加一个字符串序列:s.append("ok"),就变成了I love you ok

StringBuffer类的构造方法。详见P119到P120.

StringTokenizer类(祥见P121)

字符串分解成可被独立使用的单词。

默认的分隔标记有:空格(如干个空格被看成一个空格)、换行符、回车符、Tab等

StringTokenizer(String s,String delim),参数delim中的字符的任意排列组合都是分隔符标记。

如:StringTokenizer fenxi=new StringTokenizer("we,are;student",", ;")

nextToken()方法可以逐个获取字符串中分析器中的语言符号。

字符串分析器调用countTokens()方法可以得到计数变量的值。可以使用while循环来逐个获取语言符号(单词)

使用StringTokenizer类中的hasMoreToken()方法,只要计数变量的值大于0,该方法就返回true,否则返回false

正则表达式与模式匹配

一个正啊则表达式是含有一些具有特殊意义字符的字符串。如“\\dok”中的\\d就是具有特殊意义的元字符,代表0~9中的任何一个。一个正则表达式也称为一个模式。详细的模式匹配参见p122,。

正则表达式的模式分解。

可以使用StringTokenizer类分解字符串,也可以使用正则表达式分解字符串。

下例中分解出全部数字

public String[] split(String regex)

Str="腊月29,生日"

String regex="\\D+";//把非数字的字符作为分隔标记

String digitWord[]=str.split(regex);//按regex分隔标记分解出str中的数字29

则digitWord[0]的内容是“29”

本章结束,下章待续。(腰坐酸了)

原文地址:https://www.cnblogs.com/yanmingup/p/2877334.html