Java Character 与Arrays工具类

Character

Character 类用于对单个字符进行操作。

Character 类在对象中包装一个基本类型 char 的值

在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情况。为了解决这个问题,Java语言为内置数据类型char提供了包装类Character类。

在某些情况下,Java编译器会自动创建一个Character对象。

例如,将一个char类型的参数传递给需要一个Character类型参数的方法时,那么编译器会自动地将char类型参数转换为Character对象。 这种特征称为装箱,反过来称为拆箱

 

方法 描述
isLetter() 是否是一个字母
isDigit()   是否是一个空白字符
isWhitespace() 是否是一个空白字符
isUpperCase() 是否是大写字母
isLowerCase() 是否是小写字母
toUpperCase() 指定字母的大写形式
toLowerCase() 指定字母的小写形式
toString() 返回字符的字符串形式,字符串的长度仅为1

Arrays

数组专用工具类指的是 java.util.Arrays 类,基本上常见的数组操作,这个类都提供了静态方法可供直接调用。

具体来说,数组操作可分为以下 9 种

  • 创建数组
  • 比较数组
  • 数组排序
  • 数组检索
  • 数组转流
  • 打印数组
  • 数组转 List
  • setAll(没想好中文名)
  • parallelPrefix(没想好中文名)

本章只学习标红

1、创建数组

使用 Arrays 类创建数组可以通过以下三个方法:

  • copyOf,复制指定的数组,截取或用 null 填充
  • copyOfRange,复制指定范围内的数组到一个新的数组
  • fill,对数组进行填充

copyOf 

String[] intro = new String[] { "沉", "默", "王", "二" };
String[] revised = Arrays.copyOf(intro, 3);
String[] expanded = Arrays.copyOf(intro, 5);
System.out.println(Arrays.toString(revised));
System.out.println(Arrays.toString(expanded));

结果

[沉, 默, 王]

[沉, 默, 王, 二, null]

copyOfRange

String[] intro = new String[] { "沉", "默", "王", "二" };
String[] abridgement = Arrays.copyOfRange(intro, 0, 3);
System.out.println(Arrays.toString(abridgement));

copyOfRange() 方法需要三个参数,第一个是指定的数组,第二个是起始位置(包含),第三个是截止位置(不包含)。来看一下输出结果: 

结果

[沉, 默, 王]

fill 

String[] stutter = new String[4];
Arrays.fill(stutter, "沉默王二");
System.out.println(Arrays.toString(stutter));

使用 new 关键字创建了一个长度为 4 的数组,然后使用 fill() 方法将 4 个位置填充为“沉默王二”,来看一下输出结果:

结果

[沉默王二, 沉默王二, 沉默王二, 沉默王二] 

如果想要一个元素完全相同的数组时, fill() 方法就派上用场了。 

2、比较数组

Arrays 类的 equals() 方法用来判断两个数组是否相等。

String[] intro = new String[] { "沉", "默", "王", "二" };
boolean result = Arrays.equals(new String[] { "沉", "默", "王", "二" }, intro);
System.out.println(result);
boolean result1 = Arrays.equals(new String[] { "沉", "默", "王", "三" }, intro);
System.out.println(result1);

true false 

3、数组排序

Arrays 类的 sort() 方法用来对数组进行排序,来看下面这个例子

String[] intro1 = new String[] { "chen", "mo", "wang", "er" };
String[] sorted = Arrays.copyOf(intro1, 4);
Arrays.sort(sorted);
System.out.println(Arrays.toString(sorted));

[chen, er, mo, wang] 

可以看得出,按照的是首字母的升序进行排列的。

4、打印数组

因为数组是一个对象,直接 System.out.println 的话,

结果是这样的:[Ljava.lang.String;@3d075dc0

使用 Arrays.toString()打印

5、数组转list

尽管数组非常强大,但它自身可以操作的工具方法很少,比如说判断数组中是否包含某个值。如果能转成 List 的话,就简便多了,因为 Java 的集合框架 List 中封装了很多常用的方法。

String[] intro = new String[] { "沉", "默", "王", "二" };
List rets = Arrays.asList(intro);
System.out.println(rets.contains("二"));

不过需要注意的是,Arrays.asList() 返回的是 java.util.Arrays.ArrayList,并不是 java.util.ArrayList,它的长度是固定的,无法进行元素的删除或者添加。

rets.add("三");
rets.remove("二");

这个在编码的时候一定要注意,否则在执行这两个方法的时候,会抛出异常:

Exception in thread "main" java.lang.UnsupportedOperationException at java.base/java.util.AbstractList.add(AbstractList.java:153) at java.base/java.util.AbstractList.add(AbstractList.java:111)

 要想操作元素的话,需要多一步转化,转成真正的 java.util.ArrayList

List rets1 = new ArrayList<>(Arrays.asList(intro));
rets1.add("三");
rets1.remove("二");

 

你可能感兴趣的:(JavaSE,java,开发语言,工具类,Arrays)