java 中的Number类 Character类 String类 StringBuffer类 StringBuilder类
java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料
保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。
1. Number类
Java语言为每一个内置数据类型提供了对应的包装类。所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类Number的子类。这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number类属于java.lang包。
装箱:把基本类型用它们相应的引用类型包装起来,使其具有对象的性质。int包装成Integer、float包装成Float拆箱:和装箱相反,将引用类型的对象简化成值类型的数据
Integer a = 100; 这是自动装箱 (编译器调用的是static Integer valueOf(int i))
int b = new Integer(100); 这是自动拆箱
public class Test{ public static void main(String args[]){ Integer x = 5; x = x + 10; System.out.println(x); } }
当x被赋为整型值时,由于x是一个对象,所以编译器要对x进行装箱。然后,为了使x能进行加运算,所以要对x进行拆箱。
Number类的成员方法
序号 | 方法与描述 |
---|---|
1 | xxxValue()将number对象转换为xxx数据类型的值并返回。 |
2 | compareTo()将number对象与参数比较。 |
3 | equals()判断number对象是否与参数相等。 |
4 | valueOf()返回一个Integer对象指定的内置数据类型 |
5 | toString()以字符串形式返回值。 |
6 | parseInt()将字符串解析为int类型。 |
7 | abs()返回参数的绝对值。 |
8 | ceil()对整形变量向左取整,返回类型为double型。 |
9 | floor()对整型变量向右取整。返回类型为double类型。 |
10 | rint()返回与参数最接近的整数。返回类型为double。 |
11 | round()返回一个最接近的int、long型值。 |
12 | min()返回两个参数中的最小值。 |
13 | max()返回两个参数中的最大值。 |
14 | exp()返回自然数底数e的参数次方。 |
15 | log()返回参数的自然数底数的对数值。 |
16 | pow()返回第一个参数的第二个参数次方。 |
17 | sqrt()求参数的算术平方根。 |
18 | sin()求指定double类型参数的正弦值。 |
19 | cos()求指定double类型参数的余弦值。 |
20 | tan()求指定double类型参数的正切值。 |
21 | asin()求指定double类型参数的反正弦值。 |
22 | acos()求指定double类型参数的反余弦值。 |
23 | atan()求指定double类型参数的反正切值。 |
24 | atan2()将笛卡尔坐标转换为极坐标,并返回极坐标的角度值。 |
25 | toDegrees()将参数转化为角度。 |
26 | toRadians()将角度转换为弧度。 |
27 | random()返回一个随机数 |
2.Character类
Character类提供了一系列方法来操纵字符。你可以使用Character的构造方法创建一个Character类对象,例如:
Character ch = new Character('a');
在某些情况下,Java编译器会自动创建一个Character对象。
例如,将一个char类型的参数传递给需要一个Character类型参数的方法时,那么编译器会自动地将char类型参数转换为Character对象。 这种特征称为装箱,反过来称为拆箱。
Character方法
序号 | 方法与描述 |
---|---|
1 | isLetter()是否是一个字母 |
2 | isDigit()是否是一个数字字符 |
3 | isWhitespace()是否一个空格 |
4 | isUpperCase()是否是大写字母 |
5 | isLowerCase()是否是小写字母 |
6 | toUpperCase()指定字母的大写形式 |
7 | toLowerCase()指定字母的小写形式 |
8 | toString()返回字符的字符串形式,字符串的长度仅为1 |
3.String类
创建字符串
创建字符串最简单的方式如下:
String greeting = "Hello world!";
在代码中遇到字符串常量时,这里的值是"Hello world!",编译器会使用该值创建一个String对象。
和其它对象一样,可以使用关键字和构造方法来创建String对象。
String类有11种构造方法,这些方法提供不同的参数来初始化字符串,比如提供一个字符数组参数:
public class StringDemo{ public static void main(String args[]){ char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.'}; String helloString = new String(helloArray); System.out.println( helloString ); } }
注意:String类是不可改变的,所以你一旦创建了String对象,那它的值就无法改变了。 如果需要对字符串做很多修改,那么应该选择使用StringBuffer & StringBuilder 类。
字符串长度
用于获取有关对象的信息的方法称为访问器方法。String类的一个访问器方法是length()方法,它返回字符串对象包含的字符数。
下面的代码执行后,len变量等于17:
public class StringDemo { public static void main(String args[]) { String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); System.out.println( "String Length is : " + len ); } }
连接字符串
String类提供了连接两个字符串的方法:
string1.concat(string2);
返回string2连接string1的新字符串。也可以对字符串常量使用concat()方法,如:
"My name is ".concat("Zara");
更常用的是使用'+'操作符来连接字符串,如:
"Hello," + " world" + "!"
结果如下:
"Hello, world!"
下面是一个例子:
public class StringDemo { public static void main(String args[]) { String string1 = "saw I was "; System.out.println("Dot " + string1 + "Tod"); } }
以上实例编译运行结果如下:
Dot saw I was Tod
创建格式化字符串
我们知道输出格式化数字可以使用printf()和format()方法。String类使用静态方法format()返回一个String对象而不是PrintStream对象。
String类的静态方法format()能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。如下所示:
System.out.printf("The value of the float variable is " + "%f, while the value of the integer " + "variable is %d, and the string " + "is %s", floatVar, intVar, stringVar);
也可以这样写
String fs; fs = String.format("The value of the float variable is " + "%f, while the value of the integer " + "variable is %d, and the string " + "is %s", floatVar, intVar, stringVar); System.out.println(fs);
SN(序号) | 方法描述 |
---|---|
1 | char charAt(int index)返回指定索引处的 char 值。 |
2 | int compareTo(Object o)把这个字符串和另一个对象比较。 |
3 | int compareTo(String anotherString)按字典顺序比较两个字符串。 |
4 | int compareToIgnoreCase(String str)按字典顺序比较两个字符串,不考虑大小写。 |
5 | String concat(String str)将指定字符串连接到此字符串的结尾。 |
6 | boolean contentEquals(StringBuffer sb)当且仅当字符串与指定的StringButter有相同顺序的字符时候返回真。 |
7 | static String copyValueOf(char[] data)返回指定数组中表示该字符序列的 String。 |
8 | static String copyValueOf(char[] data, int offset, int count)返回指定数组中表示该字符序列的 String。 |
9 | boolean endsWith(String suffix)测试此字符串是否以指定的后缀结束。 |
10 | boolean equals(Object anObject)将此字符串与指定的对象比较。 |
11 | boolean equalsIgnoreCase(String anotherString)将此 String 与另一个 String 比较,不考虑大小写。 |
12 | byte[] getBytes()使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
13 | byte[] getBytes(String charsetName)使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
14 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)将字符从此字符串复制到目标字符数组。 |
15 | int hashCode()返回此字符串的哈希码。 |
16 | int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引。 |
17 | int indexOf(int ch, int fromIndex)返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。 |
18 | int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引。 |
19 | int indexOf(String str, int fromIndex)返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。 |
20 | String intern()返回字符串对象的规范化表示形式。 |
21 | int lastIndexOf(int ch)返回指定字符在此字符串中最后一次出现处的索引。 |
22 | int lastIndexOf(int ch, int fromIndex)返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。 |
23 | int lastIndexOf(String str)返回指定子字符串在此字符串中最右边出现处的索引。 |
24 | int lastIndexOf(String str, int fromIndex)返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。 |
25 | int length()返回此字符串的长度。 |
26 | boolean matches(String regex)告知此字符串是否匹配给定的正则表达式。 |
27 | boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)测试两个字符串区域是否相等。 |
28 | boolean regionMatches(int toffset, String other, int ooffset, int len)测试两个字符串区域是否相等。 |
29 | String replace(char oldChar, char newChar)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 |
30 | String replaceAll(String regex, String replacement使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 |
31 | String replaceFirst(String regex, String replacement)使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。 |
32 | String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。 |
33 | String[] split(String regex, int limit)根据匹配给定的正则表达式来拆分此字符串。 |
34 | boolean startsWith(String prefix)测试此字符串是否以指定的前缀开始。 |
35 | boolean startsWith(String prefix, int toffset)测试此字符串从指定索引开始的子字符串是否以指定前缀开始。 |
36 | CharSequence subSequence(int beginIndex, int endIndex)返回一个新的字符序列,它是此序列的一个子序列。 |
37 | String substring(int beginIndex)返回一个新的字符串,它是此字符串的一个子字符串。 |
38 | String substring(int beginIndex, int endIndex)返回一个新字符串,它是此字符串的一个子字符串。 |
39 | char[] toCharArray()将此字符串转换为一个新的字符数组。 |
40 | String toLowerCase()使用默认语言环境的规则将此 String 中的所有字符都转换为小写。 |
41 | String toLowerCase(Locale locale)使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。 |
42 | String toString()返回此对象本身(它已经是一个字符串!)。 |
43 | String toUpperCase()使用默认语言环境的规则将此 String 中的所有字符都转换为大写。 |
44 | String toUpperCase(Locale locale)使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。 |
45 | String trim()返回字符串的副本,忽略前导空白和尾部空白。 |
46 | static String valueOf(primitive data type x)返回给定data type类型x参数的字符串表示形式。 |
4. StringBuffer类
当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类。
和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder类在Java 5中被提出,它和StringBuffer之间的最大不同在于StringBuilder的方法不是线程安全的(不能同步访问)。
由于StringBuilder相较于StringBuffer有速度优势,所以多数情况下建议使用StringBuilder类。然而在应用程序要求线程安全的情况下,则必须使用StringBuffer类。
public class Test{ public static void main(String args[]){ StringBuffer sBuffer = new StringBuffer(" test"); sBuffer.append(" String Buffer"); System.out.println(sBuffer); } }
序号 | 方法描述 |
---|---|
1 | public StringBuffer append(String s)将指定的字符串追加到此字符序列。 |
2 | public StringBuffer reverse()将此字符序列用其反转形式取代。 |
3 | public delete(int start, int end)移除此序列的子字符串中的字符。 |
4 | public insert(int offset, int i)
将 int 参数的字符串表示形式插入此序列中。 |
5 | replace(int start, int end, String str)使用给定
String 中的字符替换此序列的子字符串中的字符。 |
下面的列表里的方法和String类的方法类似:
序号 | 方法描述 |
1 | int capacity()返回当前容量。 |
2 | char charAt(int index)
返回此序列中指定索引处的 char 值。 |
3 | void ensureCapacity(int minimumCapacity)确保容量至少等于指定的最小值。 |
4 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将字符从此序列复制到目标字符数组 dst 。 |
5 | int indexOf(String str)返回第一次出现的指定子字符串在该字符串中的索引。 |
6 | int indexOf(String str, int fromIndex)从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。 |
7 | int lastIndexOf(String str)返回最右边出现的指定子字符串在此字符串中的索引。 |
8 | int lastIndexOf(String str, int fromIndex)返回最后一次出现的指定子字符串在此字符串中的索引。 |
9 | int length()返回长度(字符数)。 |
10 | void setCharAt(int index, char ch)
将给定索引处的字符设置为 ch 。 |
11 | void setLength(int newLength)设置字符序列的长度。 |
12 | CharSequence subSequence(int start, int end)返回一个新的字符序列,该字符序列是此序列的子序列。 |
13 | String substring(int start)
返回一个新的 String ,它包含此字符序列当前所包含的字符子序列。 |
14 | String substring(int start, int end)返回一个新的
String ,它包含此序列当前所包含的字符子序列。 |
15 | String toString()返回此序列中数据的字符串表示形式。 |
因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。
后续会有更多的精彩的内容分享给大家。