`
isiqi
  • 浏览: 16561552 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

String类、StringBuffer类、Math类

阅读更多
本篇文章将介绍一下Java的一些主要类,String类、StringBuffer类、Math类。

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

String类
顾名思义,String是串的意思,这个类是字符串常量的类。相信使用过C语言进行编程的人都知道字符串是怎么回事,这里就不再进行赘述了。但有一点要说明的是,Java中的字符串和C语言中的字符串是有区别的。在C语言中,并没有真正意义上的字符串,C语言中的字符串就是字符数组,使用起来非常的灵活。而在Java中,字符串常量是一个类??String类,它和字符数组是不同的。

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

publicString()

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

如:Stringtest=newString();

或:Stringtest;

test=newString();

publicString(Stringvalue)


这个构造函数用一个已经存在的字符串常量作为参数来创建一个新的字符串常量。

另外值得注意的是,Java会为每个用双引号"......"括起来的字符串常量创建一个String类的对象。如:Stringk="Hi.";Java会为"Hi."创建一个String类的对象,然后把这个对象赋值给k。等同于:

Stringtemp=newString("Hi.");

Stringk=temp;


这个构造函数的用法如:

Stringtest=newString(k);(注:k是一个String类的对象)

Stringtest=newString("Hello,world.");

publicString(charvalue[])


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

用法如:

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

Stringtest=newString(z);

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

publicString(charvalue[],intoffset,intcount)


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

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

Stringtest=newString(z,1,3);

(注:此时test中的内容为"ell")

注意:数组中,下标0表示第一个元素,1表示第二个元素……

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

StringIndexOutOfBoundsException

publicString(StringBufferbuffer)


这个构造函数用一个StringBuffer类的对象作为参数来创建一个新的字符串常量。

String类是字符串常量,而StringBuffer类是字符串变量,是不同的。StringBuffer类将在后面进行介绍。

String类的方法有:

publiccharcharAt(intindex)


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

Strings="hello";

chark=s.charAt(0);

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

publicintcompareTo(StringanotherString)


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

Strings1="abc";

Strings2="abd";

intresult=s2.compareTo(s1);

(注:result的值大于0,因为d在ascII码中排在c的后面,则s2>s1)

publicStringconcat(Stringstr)


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

Strings2="youdo?";

Stringss=s1.concat(s2);

(注:ss的值为"Howdoyoudo?")

publicbooleanstartsWith(Stringprefix)


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

Strings1="abcdefg";

Strings2="bc";

booleanresult=s1.startsWith(s2);

(注:result的值为false)

publicbooleanstartsWith(Stringprefix,inttoffset)


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

publicbooleanendsWith(Stringsuffix)


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

Strings1="abcdefg";

Strings2="fg";

booleanresult=s1.endsWith(s2);

(注:result的值为true)

publicvoidgetChars(intsrcBegin,intsrcEnd,chardst[],intdstBegin)


这个方法用来从字符串常量中截取一段字符串并转换为字符数组。

参数srcBegin为截取的起始点,srcEnd为截取的结束点,dst为目标字符数组,dstBegin指定将截取的字符串放在字符数组的什么位置。实际上,srcEnd为截取的结束点加1,srcEnd-srcBegin为要截取的字符数,用法如:

Strings="abcdefg";

charz[]=newchar[10];

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

(注:z[0]的值为'c',z[1]的值为'd',截取了两个字符4-2=2)

publicintindexOf(intch)


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

Strings="abcdefg";

intr1=s.indexOf('c');

intr2=s.indexOf('x');

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

publicintindexOf(intch,intfromIndex)


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

Strings="abcdaefg";

intr=s.indexOf('a',1);

(注:r的值为4)

publicintindexOf(Stringstr)


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

Strings="abcdefg";

intr1=s.indexOf("cd");

intr2=s.indexOf("ca");

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

publicintindexOf(Stringstr,intfromIndex)


这个重载方法新增的参数fromIndex为查找的起始点。

 

以下四个方法与上面的四个方法用法类似,只是在字符串常量中从右向左进行查找。

publicintlastIndexOf(intch)

publicintlastIndexOf(intch,intfromIndex)

publicintlastIndexOf(Stringstr)

publicintlastIndexOf(Stringstr,intfromIndex)

publicintlength()


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

Strings="abc";

intresult=s.length();

(注:result的值为3)

publicchar[]toCharArray()


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

Strings="Whoareyou?";

charz[]=s.toCharArray();

publicstaticStringvalueOf(booleanb)

publicstaticStringvalueOf(charc)

publicstaticStringvalueOf(inti)

publicstaticStringvalueOf(longl)

publicstaticStringvalueOf(floatf)

publicstaticStringvalueOf(doubled)


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

Stringr1=String.valueOf(true);(注:r1的值为"true")

Stringr2=String.valueOf('c');(注:r2的值为"c")

floatff=3.1415926;

Stringr3=String.valueOf(ff);(注:r3的值为"3.1415926")


 

StringBuffer类

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

String类的构造函数

publicStringBuffer()


创建一个空的StringBuffer类的对象。publicStringBuffer(intlength)


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

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

publicStringBuffer(Stringstr)


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

StringBuffer类的方法有:

publicStringtoString()


转换为String类对象并返回。由于大多数类中关于显示的方法的参数多为String类的对象,所以经常要将StringBuffer类的对象转换为String类的对象,再将它的值显示出来。用法如:

StringBuffersb=newStringBuffer("Howareyou?");

Labell1=newLabel(sb.toString());

(注:声明一个标签对象l1,l1上的内容为Howareyou?)

publicStringBufferappend(booleanb)

publicStringBufferappend(charc)
publicStringBufferappend(inti)
publicStringBufferappend(longl)

publicStringBufferappend(floatf)

publicStringBufferappend(doubled)


以上6个方法可将boolean、char、int、long、float和double6种类型的变量追加到StringBuffer类的对象的后面。用法如:

doubled=123.4567;

StringBuffersb=newStringBuffer();

sb.append(true);

sb.append('c').append(d).append(99);

(注:sb的值为truec123.456799)

publicStringBufferappend(Stringstr)


将字符串常量str追加到StringBuffer类的对象的后面。

publicStringBufferappend(charstr[])


将字符数组str追加到StringBuffer类的对象的后面。

publicStringBufferappend(charstr[],intoffset,intlen)


将字符数组str,从第offset个开始取len个字符,追加到StringBuffer类的对象的后面。 

publicStringBufferinsert(intoffset,booleanb)

publicStringBufferinsert(intoffset,charc)

publicStringBufferinsert(intoffset,inti)

publicStringBufferinsert(intoffset,longl)

publicStringBufferinsert(intoffset,floatf)

publicStringBufferinsert(intoffset,doubled)

publicStringBufferinsert(intoffset,Stringstr)

publicStringBufferinsert(intoffset,charstr[])


将boolean、char、int、long、float、double类型的变量、String类的对象或字符数组插入到StringBuffer类的对象中的第offset个位置。用法如:

StringBuffersb=newStringBuffer("abfg");

sb.insert(2,"cde");

(注:sb的值为abcdefg)

publicintlength()


这个方法返回字符串变量的长度,用法与String类的length方法类似。

 

Math类

数学类包含了许多数学函数,如sin、cos、exp、abs等。Math类是一个工具类,它在解决与数学有关的一些问题是有着非常重要的作用。

这个类有两个静态属性:E和PI。E代表数学中的e2.7182818,而PI代表派pi3.1415926。

引用时,用法如:Math.E和Math.Pi

这个类的方法有:

publicstaticintabs(inta)

publicstaticlongabs(longa)

publicstaticfloatabs(floata)

publicstaticdoubleabs(doublea)


abs方法用来求绝对值。

publicstaticnativedoubleacos(doublea)


acos求反余弦函数。

publicstaticnativedoubleasin(doublea)


asin求反正弦函数。

publicstaticnativedoubleatan(doublea)


atan求反正切函数。

publicstaticnativedoubleceil(doublea)


ceil返回最小的大于a的整数。

publicstaticnativedoublecos(doublea)


cos求余弦函数。

publicstaticnativedoubleexp(doublea)


exp求e的a次幂。

publicstaticnativedoublefloor(doublea)


floor返回最大的小于a的整数。

publicstaticnativedoublelog(doublea)


log返回lna。

publicstaticnativedoublepow(doublea,doubleb)


pow求a的b次幂。

publicstaticnativedoublesin(doublea)


sin求正弦函数。

publicstaticnativedoublesqrt(doublea)


sqrt求a的开平方。

publicstaticnativedoubletan(doublea)


tan求正切函数。

publicstaticsynchronizeddoublerandom()


返回0到1之间的随机数。

使用这些方法时,用法为Math.*****(*****为方法名)。用法如:

inta=Math.abs(124);

intb=Math.floor(-5.2);

doubles=Math.sqrt(7);
分享到:
评论

相关推荐

    Java中的String、StringBuffer和Math类

    ### Java中的String、StringBuffer和Math类 #### String类详解 **String类**在Java中扮演着极其重要的角色,主要用于处理不可变的字符序列。它不仅功能强大而且使用广泛,几乎所有的Java应用程序都会涉及到字符串...

    Java API(String类、Math类、Random类、Runtime类).ppt

    掌握String类和StringBuffer类的使用 了解System类、Runtime类、Math类和Random类的使用 熟悉包装类的使用

    JAVA api String类和StringBuffer类 System类和Runtime类 Math类和Random类

    包装类Date类、Calendar类DateFormat类

    Java当中string类基础数据类型的包装类Math类File类.docx

    本文总结了Java基础知识点,涵盖String类、Math类、File类和枚举等方面。 String类 String类是Java语言中最基本的字符串类,它提供了多种方法来操作字符串。StringBuffer类是String类的可变版本,提供了更多的功能...

    JAVA 面向对象程序设计第6章 Java常用类.pptx

    第6章 Java常用类;回顾;本章内容;6.1 Object类;6.1.1 Object类概述;6.1.2 Object的常用方法;6.1.2 Object的常用方法;6.1.2 Object的常用方法;6.1.3 学生实践练习;...6.3.1 Math类运算操作;6.3.1 Math类运算操作;6.3.

    08.【String类、static、Arrays类、Math类】.zip

    此外,`String`类还支持字符串连接操作,如`+`运算符和`StringBuilder`/`StringBuffer`的使用。 `static`关键字在Java中用于声明类级别的变量和方法,这些变量和方法与类相关联,而不是类的实例。静态变量被所有类...

    基础(二)

    Math类1.3. Arrays 类1.4. System 类1.5. Object 类1.6. Date 类1.6.1.日期格式化1.7. Calendar 类2.数组与集合2.1.数组2.1.1.数组的定义2.1.2.数组的访问2.1.3.数组相关算法2.2. Collection集合2.2.1.迭代器2.2.2....

    大学课程讲义-Java基础-Java常用类

    Random类是Java中生成随机数的类,而Math类是Java中提供数学函数的类。 * Random类的构造方法:Random() * Random类的常用方法: + public int nextInt():生成一个随机整数 + public double nextDouble():生成...

    java-API-String类

    - `java.lang`:包含一些核心类,如`String`、`Math`、`Integer`等。 - `java.awt`:提供构建GUI组件的类。 - `java.net`:支持网络编程的类。 - `java.io`:支持文件I/O操作的类。 - `java.util`:提供日期、...

    java实验报告心得.doc

    本实验报告旨在掌握 Java 基础知识,包括 String 类、StringBuffer 类、Math 类、包装类和 StringTokenizer 类等。通过实验,学生可以熟悉 Java 基础编程概念和技术。 一、String 类 *equals() 方法和 "==" 运算符...

    java技术文档 常用类和经典应用

    Math类的常用方法.pdf String与StringBuffer.pdf Vector类的用法.pdf 迭代器Iterator的用法.pdf 反射机制.pdf 访问路经问题.pdf 基于MVC和RMI的分布.pdf 经典的查询方式.pdf 经典的显示方法.pdf 面向对象的实现.pdf ...

    Java常用的基础类

    StringBuffer 类是 String 类的可变版本,它可以实现字符串的修改。StringBuffer 类提供了许多有用的方法,例如 append() 方法可以添加字符串,insert() 方法可以插入字符串,delete() 方法可以删除字符串等。 4. ...

    山东科技大学-Java数据结构实验三.docx

    本实验报告主要讲述了 Java 数据结构实验的第三部分,内容涵盖 Java 中 String、StringBuffer、Math、包装器、Scanner、Date 等类的使用方法,以及 JavaSE API 文档的使用方法。实验报告共分为三部分,分别为实验...

    实验5 JAVA常用类.doc

    - **StringBuffer/StringBuilder** 是可变的字符串类,适合在多线程环境下进行大量字符串操作,它们提供了类似于String的方法,如 `append()` 和 `insert()`,但在性能上更优。 2. **基本类型包装类**: - Java的...

    JAVA编程高级-工具类.pdf

    - **Math类** `Math`类包含了多个静态方法来执行数学运算,如`abs()`、`max()`、`min()`、`sqrt()`、`random()`等。 #### 日期类型 - **日期相关的类** Java中有多个类用于处理日期和时间,包括但不限于: - ...

    Java程序设计API类库实训.pdf

    在实验中,我们使用了 String 类和 StringBuffer 类来完成字符串操作,如字符串比较、字符串连接、字符串索引等。 三、日期类 * Date 类:Java.util.Date 类是一个日期类,提供了日期操作的方法,如得到当前日期、...

    Java类库 java中常用的类 可以参考

    下面重点介绍两个非常重要的类——`String` 类和 `StringBuffer` 类: ##### 1. String 类 - **特性**:不可变性,即一旦创建后无法修改。 - **构造器**: - `String()`:初始化一个新的 String 对象,使其包含一...

    Java 常用类 的介绍

    这里我们将详细讨论几个核心的Java类,包括Object类、String类、StringBuffer类、包装类、Math类、Random类以及处理日期的类和BigDecimal类。 首先,Object类是所有Java类的基类,无论何时定义一个类,如果没有明确...

Global site tag (gtag.js) - Google Analytics