介绍
在 Java 和其他面向对象的编程语言中,对象是相关数据的集合,并附带一组方法。这些方法对对象进行操作,执行计算,有时还会修改对象的数据。在这里,我们将介绍三种简单但重要的 Java 内置对象类型:Number(数字)、String(字符串)和 Array(数组)。
在 Java 和其他面向对象的编程语言中,对象是相关数据的集合,并附带一组方法。这些方法对对象进行操作,执行计算,有时还会修改对象的数据。在这里,我们将介绍三种简单但重要的 Java 内置对象类型:Number(数字)、String(字符串)和 Array(数组)。
通常,我们使用原始数字类型,例如 byte
、int
、double
等。然而,有时我们需要使用对象而不是原始数据类型。Java 为原始数据类型提供了包装类(Wrapper Classes),例如 Byte
、Short
、Long
、Integer
、Double
、Float
等。包装对象可以转换回原始数据类型,这个过程称为 拆箱(unboxing)。Number
类是 java.lang
包的一部分,关于包的更多内容将在后面讨论。
以下是 Number
类的子类实现的一些常见类方法:
Number
对象的值转换为 xxx 数据类型并返回。Number
对象与参数进行比较。Number
对象是否与参数相等。Integer
对象。int
或 Integer
值的 String
对象。String
值中获取原始 int
类型。double
类型返回。double
类型返回。示例:
在 /home/labex/project/numberTest.java
文件中编写以下代码:
public class numberTest
{
public static void main(String[] args){
Integer x = 1; // 将 int 装箱为 Integer 对象
x = x + 1; // 将 Integer 拆箱为 int
System.out.println(Integer.parseInt("10")); // 从字符串中解析 int
System.out.println( "x = " + x);
}
}
输出:
使用以下命令运行 numberTest.java
文件:
javac /home/labex/project/numberTest.java
java numberTest
查看输出:
10
x = 2
字符串是对象,因此你可能会问:“String 对象中包含的数据是什么?” 以及 “我们可以在 String 对象上调用哪些方法?” String 对象的组成部分是字符。并非所有字符都是字母;有些是数字,有些是特殊符号,其余的是其他类别的字符。为简单起见,我们将它们统称为字符。String
类中有许多字符串方法,但我们只会使用其中的一部分。其余的可以在官方网站的文档中查阅。
注意: String
类是不可变的(immutable),因此一旦创建了 String 对象,就无法修改。如果需要频繁修改字符序列,则应使用 StringBuffer
和 StringBuilder
类。
以下是 String
、StringBuffer
和 StringBuilder
类的一些常用方法:
index
参数指定的字符。dst
中。String
,其中包含当前 StringBuffer
中的字符子序列。子字符串从指定索引开始,并延伸到 StringBuffer
的末尾。String
,其中包含当前 StringBuffer
中的字符子序列。示例:
在 /home/labex/project/stringTest.java
文件中编写以下代码:
public class stringTest
{
public static void main(String[] args){
String greeting = "Hello world!";
String hello = new String("Hello !");
System.out.println("greeting is: "+ greeting);
System.out.println("hello is: "+ hello);
System.out.println("length of greeting: " + greeting.length());
System.out.println("first char of greeting: " + greeting.charAt(0));
System.out.println("index of 'e' in hello: "+ hello.indexOf('e'));
System.out.println("substring of greeting: "+ greeting.substring(6)); //substr: world
}
}
输出:
使用以下命令运行 stringTest.java
文件:
javac /home/labex/project/stringTest.java
java stringTest
查看输出:
greeting is: Hello world!
hello is: Hello !
length of greeting: 12
first char of greeting: H
index of 'e' in hello: 1
substring of greeting: world!
数组结构用于存储数据集合,但通常更有用的方式是将数组视为单一类型的变量集合。与其声明单独的变量,例如 number0
、number1
、...、number99
,你可以声明一个数组变量 numbers
,并使用 numbers[0]
、numbers[1]
、...、numbers[99]
来表示单独的变量。数组的第一个元素的索引为 0
。
以下是数组的一些常用方法:
(–(插入点 + 1))
。long
数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中所有对应的元素对都相等,则认为这两个数组相等。此方法也可用于其他原始数据类型(byte
、short
、int
等)。int
值分配给指定 int
数组的每个元素。此方法也可用于其他原始数据类型(byte
、short
等)。byte
、short
、int
等)。示例:
在 /home/labex/project/arrayTest.java
文件中编写以下代码:
public class arrayTest
{
public static void main(String[] args){
// 你可以使用 new 初始化一个空数组。
String[] nameArray1 = new String[5];
// 用相同的名称 "abc" 填充空数组 nameArray1
java.util.Arrays.fill(nameArray1,"abc");
// 也可以使用 for 循环遍历数组
for (String name:nameArray1){
System.out.println(name);
}
// 你可以使用一些值来初始化数组。
String[] nameArray2 = {"Candy", "Fancy", "Ann", "Ella", "Bob"};
// 你可以获取数组的长度
System.out.println("Length of nameArray2: " + nameArray2.length);
// 你可以通过索引获取值
System.out.println("The last item of nameArray2 is " + nameArray2[4]);
// 对数组对象进行排序
java.util.Arrays.sort(nameArray2);
System.out.println("Sorted nameArray2 by alphabet:");
for(String name:nameArray2){
System.out.println(name);
}
}
}
输出:
使用以下命令运行 arrayTest.java
文件:
javac /home/labex/project/arrayTest.java
java arrayTest
查看输出:
abc
abc
abc
abc
abc
Length of nameArray2: 5
The last item of nameArray2 is Bob
Sorted nameArray2 by alphabet:
Ann
Bob
Candy
Ella
Fancy
大多数任务都是处理数字和字符串等数据,因此使用 Java 内置类来执行这些任务既简单又高效。对于更高级的用法,你可以阅读官方文档。