分享
 
 
 

Java中的String、StringBuffer和Math类

王朝java/jsp·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

Java是一种真正的面向对象的语言,即使是开发简单的程序,也必须设计对象。Java自身也为我们提供了许多已设计好的类,要想灵活使用Java进行编程,熟悉Java的这些主要类将是必不可少的前提条件之一。

String类

顾名思义,String是串的意思,这个类是字符串常量的类。相信使用过C语言进行编程的人都知道字符串是怎么回事,这里就不再进行赘述了。但有一点要说明的是,Java中的字符串和C语言中的字符串是有区别的。

在C语言中,并没有真正意义上的字符串,C语言中的字符串就是字符数组,使用起来非常的灵活。而在Java中,字符串常量是一个类,String类,它和字符数组是不同的。

下面先介绍一下String类的构造函数:

public String()

这个构造函数用来创建一个空的字符串常量。如:

String test=new String();

或:

String test;

test=new String();

public String(String value )

这个构造函数用一个已经存在的字符串常量作为参数来创建一个新的字符串常量。另外值得注意的是,Java会为每个用双引号"......"括起来的字符串常量创建一个String类的对象。

如:

String k="Hi.";

Java会为"Hi."创建一个String类的对象,然后把这个对象赋值给k。等同于:

String temp=new String("Hi.");

String k=temp;

这个构造函数的用法如:

String test=new String(k);

(注:k是一个String类的对象)

String test=new String("Hello, world.");

public String( char value[] )

这个构造函数用一个字符数组作为参数来创建一个新的字符串常量。用法如:

char z[]={'h','e','l','l','o'};

String test=new String(z);

注:此时test中的内容为"hello"

public String( char value[],

int offset, int count )

这个构造函数是对上一个的扩充,用一句话来说,就是用字符数组value,从第offset个字符起取count个字符来创建一个String类的对象。用法如:

char z[]={'h','e','l','l','o'};

String test=new String(z,1,3);

注:此时test中的内容为"ell",数组中,下标0表示第一个元素,1表示第二个元素……

如果 起始点offset 或 截取数量count 越界,将会产生异常。

StringIndexOutOfBoundsException

public String( StringBuffer buffer )

这个构造函数用一个StringBuffer类的对象作为参数来创建一个新的字符串常量。String类是字符串常量,而StringBuffer类是字符串变量,是不同的。StringBuffer类将在后面进行介绍。

String类的方法有:

public char charAt( int index )

这个方法用来获取字符串常量中的一个字符。参数index指定从字符串中返回第几个字符,这个方法返回一个字符型变量。用法如:

String s="hello";

char k=s.charAt(0);

(注:此时k的值为'h')

public int compareTo( String anotherString )

这个方法用来比较字符串常量的大小,参数anotherString为另一个字符串常量。若两个字符串常量一样,返回值为0。若当前字符串常量大,则返回值大于0。若另一个字符串常量大,则返回值小于0。用法如:

String s1="abc";

String s2="abd";

int result=s2.compareTo(s1);

(注:result的值大于0,

因为d在ascII码中排在c的后面,则s2s1)

public String concat( String str )

这个方法将把参数??字符串常量str接在当前字符串常量的后面,生成一个新的字符串常量,并返回。用法如:

String s1="How do ";

String s2="you do?";

String ss=s1.concat(s2);

(注:ss的值为"How do you do?")

public boolean startsWith( String prefix )

这个方法判断当前字符串常量是不是以参数??prefix字符串常量开头的。是,返回true。否,返回false。 用法如:

String s1="abcdefg";

String s2="bc";

boolean result=s1.startsWith(s2);

(注:result的值为false)

public boolean startsWith

( String prefix, int toffset )

这个重载方法新增的参数toffset指定 进行查找的起始点。

public boolean endsWith( String suffix )

这个方法判断当前字符串常量是不是以参数??suffix字符串常量结尾的。是,返回true。否,返回false。用法如:

String s1="abcdefg";

String s2="fg";

boolean result=s1.endsWith(s2);

(注:result的值为true)

public void getChars

( int srcBegin, int srcEnd,

char dst[], int dstBegin )

这个方法用来从字符串常量中截取一段字符串并转换为字符数组。参数srcBegin为截取的起始点,srcEnd为截取的结束点,dst为目标字符数组,dstBegin指定将截取的字符串放在字符数组的什么位置。实际上,srcEnd为截取的结束点加1,srcEnd-srcBegin为要截取的字符数,用法如:

String s="abcdefg";

char z[]=new char[10];

s.getChars(2,4,z,0);

(注:z[0]的值为'c',z[1]的值为'd',

截取了两个字符 4-2=2)

public int indexOf( int ch )

这个方法的返回值为字符ch在字符串常量中从左到右第一次出现的位置。若字符串常量中没有该字符,则返回-1。用法如:

String s="abcdefg";

int r1=s.indexOf('c');

int r2=s.indexOf('x');

(注:r1的值为2,r2的值为-1)

public int indexOf

( int ch, int fromIndex )

这个方法是对上一个方法的重载,新增的参数fromIndex为查找的起始点。用法如:

String s="abcdaefg";

int r=s.indexOf('a',1);

(注:r的值为4)

public int indexOf( String str )

这个重载方法返回字符串常量str在当前字符串常量中从左到右第一次出现的位置,若当前字符串常量中不包含字符串常量str,则返回-1。用法如:

String s="abcdefg";

int r1=s.indexOf("cd");

int r2=s.indexOf("ca");

(注:r1的值为2,r2的值为-1)

public int indexOf

( String str, int fromIndex )

这个重载方法新增的参数fromIndex为查找的起始点。以下四个方法与上面的四个方法用法类似,只是在字符串常量中从右向左进行查找。

public int lastIndexOf( int ch )

public int lastIndexOf( int ch, int fromIndex )

public int lastIndexOf( String str )

public int lastIndexOf( String str, int fromIndex )

public int length()

这个方法返回字符串常量的长度,这是最常用的一个方法。用法如:

String s="abc";

int result=s.length();

(注:result的值为3)

public char[] toCharArray()

这个方法将当前字符串常量转换为字符数组,并返回。用法如:

String s="Who are you?";

char z[]=s.toCharArray();

public static String valueOf( boolean b )

public static String valueOf( char c )

public static String valueOf( int i )

public static String valueOf( long l )

public static String valueOf( float f )

public static String valueOf( double d )

以上6个方法可将boolean、char、int、long、float和double 6种类型的变量转换为String类的对象。用法如:

String r1=String.valueOf(true);

(注:r1的值为"true")

String r2=String.valueOf('c');

(注:r2的值为"c")

float ff=3.1415926;

String r3=String.valueOf(ff);

(注:r3的值为"3.1415926")

StringBuffer 类

String类是字符串常量,是不可更改的常量。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。

String类的构造函数

public StringBuffer()

创建一个空的StringBuffer类的对象。

public StringBuffer( int length )

创建一个长度为 参数length 的StringBuffer类的对象。

注意:如果参数length小于0,将触发NegativeArraySizeException异常。

public StringBuffer( String str )

用一个已存在的字符串常量来创建StringBuffer类的对

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有