首页 > 代码库 > lang包(上)
lang包(上)
java.lang包是Java内置的一个基础包,其中包含了一系列程序经常要用到的类。默认情况下,每个java程序都会自动导入该包,所以不用在程序中显示声明。
原始数据类型声明的变量不能作为对象使用,但Java提供的一系列包装类,能使得原始数据类型当作对象进行操作。
在java.lang包中,对于每个原始数据类型都有一个相应的包装类。
每个包装类都有一个静态的valueOf()--用于将字符串转换为相应包装类的对象。
除了Boolean类和Character类以外,其它的包装类都有静态的parseXxx方法(Xxx指代具体的数据类型),用于将字符串转换成相对应的原始数据类型值。
boolean isLetter(char ch)--判断字符ch是否为英文字母
boolean isDigit(char ch)--判断字符ch是否为0~9之间的数字
boolean isUpperCase(char ch)--判断字符ch是否为大写形式
boolean isLowerCase(char ch)--判断字符ch是否为小写形式
boolean isWhitespace(char ch)--判断字符ch是否为空格或换行符
以上方法都是静态方法,可以直接通过类名调用,返回值均为boolean类型,如果是返回true,否则返回false。
public class CharacterDemo {
public static void main(String[] args) {
char[] charArray = {‘*‘, ‘7‘, ‘b‘, ‘ ‘, ‘A‘};
for (int i = 0; i < charArray.length; i++) {
if (Character.isDigit(charArray[i])) {
System.out.println(charArray[i] + "是一个数字。");
}
if (Character.isLetter(charArray[i])) {
System.out.println(charArray[i] + "是一个字母。");
}
if (Character.isWhitespace(charArray[i])) {
System.out.println(charArray[i] + "是一个空格。");
}
if (Character.isLowerCase(charArray[i])) {
System.out.println(charArray[i] + "是小写形式。");
}
if (Character.isUpperCase(charArray[i])) {
System.out.println(charArray[i] + "是大写形式。");
}
}
}
}
Java中,字符串是String类的对象;
可以通过使用String类提供的方法来完成对字符串的操作;
创建一个字符串对象之后,将不能更改构成字符串的字符;
每当更改了字符串版本时,就创建了一个新的字符串对象,并在其内包含所做的修改,原始字符串保持不变。
ublic class StringDemo
{
public static void main(String[] args)
{
String s1= "HELLO";
//利用一个字符常量创建一个新的字符串
String s2 = new String("abc");
char[] ch = {‘A‘,‘C‘,‘C‘,‘P‘};
//利用一个字符数组创建一个新的字符串
String s3 = new String(ch);
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
}
}
String类中提供length成员方法 ,用来获得字符串的长度,方法原型:int length()
该方法返回字符串中有效字符的个数。
public class StringDemo
{
public static void main(String[] args)
{
String s1 = "你好";
String s2 = new String("我很好");
System.out.println(s1.length());
System.out.println(s2.length());
}
}
要判断两个字符串是否相等,可以使用“==”运算符和equals()方法,但是得到的结果可能不完全相同;
==运算符用于比较两个引用是否指向同一个对象;
而equals()方法则是比较两个字符串中的内容是否相同,其原型:
boolean equals(Object anObject)
如果相等返回true,否则返回false。
public class StringDemo {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
String s3 = new String("ABC");
String s4 = new String("ABC");
if (s1==s2) {
System.out.println("s1和s2指向同一个字符。");
}else{
System.out.println("s1和s2指向不同字符。");
}
if (s1.equals(s2)) {
System.out.println("s1和s2内容完全相同");
} else {
System.out.println("s1和s2内容不相同");
}
if (s3==s4) {
System.out.println("s3和s4指向同一个字符。");
}else{
System.out.println("s3和s4指向不同字符。");
}
if (s3.equals(s4)) {
System.out.println("s3和s4内容完全相同");
} else {
System.out.println("s3和s4内容不相同");
}
}
}
int compareTo(String anotherString)--根据ASCII码比较字符串anoterString和当前字符串的大小,比较方式类似于C语言中的strcmp函数
boolean startsWith(String prefix)--判断当前字符串是否以字符串prefix为开头
boolean endsWith(String suffix)--判断当前字符串是否以字符串suffix为后缀
如果需要搜索某个字符(或某个子串)在字符串中是否出现过,这就要使用到indexOf方法和lastIndexOf方法。
int indexOf(int ch)--搜索字符ch在当前字符串中第一次出现的索引,没有出现则返回-1
int indexOf(String str)--搜索字符串str在当前字符串中第一次出现的索引,没有出现则返回-1
int lastIndexOf(int ch)--搜索字符ch在当前字符串中最后一次出现的索引,没有出现则返回-1
int lastIndexOf(String str)--搜索字符串str在当前字符串中最后一次出现的索引,没有出现则返回-1
public class StringDemo
{
public static void main(String[] args)
{
String strEmail = "java@sun.com";
int index;
System.out.println("E-mail地址:" + strEmail);
index = strEmail.indexOf(‘@‘);
System.out.println("@字符出现的索引:" + index);
index = strEmail.indexOf("sun");
System.out.println("字符串\"sun\"出现的索引:" + index);
index = strEmail.lastIndexOf(‘a‘);
System.out.println("a字符最后一次出现的索引:" + index);
}
}
char charAt(int index)--用于从指定位置提取单个字符,该位置由index指定,索引值必须为非负
String substring(int index)--用于提取从index指定的位置开始的字符串部分
String substring(int begin, int end)--用于提取 begin 和 end 位置之间的字符串部分
String concat(String str)--用于连接两个字符串,并新建一个包含调用字符串的字符串对象
String replace(char oldChar, char newChar)--用于将调用字符串中出现oldChar指定的字符全部都替换为newChar指定的字符
replaceAll(String regex, String replacement)--用于将调用字符串中出现或者匹配regex的字符串全部都替换为replacement指定的字符
String trim()--用于返回一个前后不含任何空格的调用字符串的副本
public class StringDemo
{
public static void main(String[] args)
{
String str1 = " Java is OOP";
String str2 = new String("accp");
System.out.println(str1.charAt(2));
System.out.println(str1.substring(5));
System.out.println(str1.substring(2, 9));
System.out.println(str1.concat(str2));
System.out.println(str1 + str2);
System.out.println(str1.replace(‘a‘, ‘e‘));
System.out.println(str1.trim());
}
}
有时候,我们需要将字符串中字符的大小写形式进行转换。
String toUpperCase()--返回当前字符串的全大写形式
String toLowerCase()--返回当前字符串的全小写形式
public class StringDemo
{
public static void main(String[] args)
{
String str1 = "Java is OOP";
String str2;
str2 = str1.toLowerCase();
System.out.println(str2);
str2 = str1.toUpperCase();
System.out.println(str2);
}
}
在某些特定的场合,我们可能需要将字符串转化成其它格式的数据进行操作;
byte[] getBytes()--返回当前字符串转化成byte型数组的形式(即字符串在内存中保存的最原始的二进制形态)
char[] toCharArray()--返回当前字符串的字符数组形式,类似于C语言中字符串的保存形式
java.lang包是Java中最基础的一个包,也是唯一一个无需显示声明就默认导入包;
包装类共有8个,它们可以以对象的形式封装原始类型的数据;
Java中的字符串以String类对象的形式存放,该类中提供一系列对字符串进行操作的方法;
lang包(上)