首页 > 代码库 > 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包(上)