Character 类型
字符(Character)是围绕字符型(char)的一个简单的包装器。字符(Character)的构
造函数如下:
Character(char ch)
这里ch指定了被创建的字符(Character)对象所包装的字符。
调用如下的charValue( )方法可以获得包含在字符(Character)对象中的字符型(char)
值。
char charValue( )
调用的结果返回字符。
字符(Character)类定义了几个常数,包括下面这些:
 
MAX_RADIX 最大基数
MIN_RADIX 最小基数
MAX_VALUE 最大字符值
MIN_VALUE 最小字符值
TYPE 字符型(char)的类(Class)对象
字符(Character)包括了几个静态方法,这些方法完成将字符分类并改变它们的大小
写。这些方法在表14-7中列出。下面的例子说明了这些方法。
// Demonstrate several Is... methods.
class IsDemo {
public static void main(String args[]) {
char a[] = {'a', 'b', '5', '?', 'A', ' '};
for(int i=0; i<a.length; i++) {
if(Character.isDigit(a[i]))
System.out.println(a[i] + " is a digit.");
if(Character.isLetter(a[i]))
System.out.println(a[i] + " is a letter.");
if(Character.isWhitespace(a[i]))
System.out.println(a[i] + " is whitespace.");
if(Character.isUpperCase(a[i]))
System.out.println(a[i] + " is uppercase.");
if(Character.isLowerCase(a[i]))
System.out.println(a[i] + " is lowercase.");
}
}
}
程序的输出结果如下所示:
a is a letter.
a is lowercase.
b is a letter.
b is lowercase.
5 is a digit.
A is a letter.
A is uppercase.
is whitespace.
表 14-7 各种字符(Character)方法
方法 描述
static boolean isDefined(char ch) 如果ch是由Unicode定义的,则返回true,否则,返回false
static boolean isDigit(char ch) 如果ch是一个数字,则返回true,否则,返回false
static boolean isIdentifierIgnorable(char ch) 如果在一个标识符中ch应被忽略,则返回true,否则,返
回false
static boolean isISOControl(char ch) 如果ch是一个ISO控制字符,则返回true,否则,返回false
 
续表
方法 描述
static boolean isJavaIdentifierPart(char ch) 如果ch被做为Java标识符的一部分(除了第一个字符),
则返回true。否则,返回false
static boolean isJavaIdentifierStart(char ch) 如果ch被做为Java标识符的首字符,则返回true。否则返
回false
static boolean isLetter(char ch) 如果ch是一个字母,则返回true。否则返回false
static boolean isLetterOrDigit(char ch) 如果ch是一个字母或一个数字,则返回true。否则返回
false
static boolean isLowerCase(char ch) 当ch是小写字母时,返回true。否则返回false
static boolean isSpaceChar(char ch) 如果ch是Unicode编码的空格字符,则返回true。否则返
回false
static boolean isTitleCase(char ch) 如果ch是Unicode编码的标题字符,则返回true。否则返
回false
static boolean isUnicodeIdentifierPart
(char ch)
如果ch被做为Unicode编码标识符的一部分(除了第一个
字符),则返回true。否则,返回false
static boolean isUnicodeIdentifierStart
(char ch)
如果ch被做为一个Unicode标识符的首字符,则返回true。
否则返回false
static boolean isUpperCase(char ch) 如果ch是一个大写字母,则返回true。否则返回false
static boolean isWhitespace(char ch) 如果ch是一个空白符,则返回true。否则,返回false
static char toLowerCase(char ch) 返回ch的小写等价形式
static char toTitleCase(char ch) 返回ch的标题等价形式
static char toUpperCase(char ch) 返回ch的大写等价形式
字符(Character)定义了如下形式的forDigit( )和digit( )方法:
static char forDigit(int num, int radix)
static int digit(char digit, int radix)
forDigit( )方法返回与num的值关联的数字字符。而转换的基数由radix指定。digit( )方
法按照给定的基数,返回与指定字符(该字符可能是一个数字)相关联的整数值。
由Character类定义的另一个方法是compareTo( ),该方法具有如下的两种形式:
int compareTo(Character c)
int compareTo(Object obj)
第一种形式当调用对象与c具有相同值时返回0。当调用对象具有比c小的值时返回一个
负值。否则它将返回一个正值。在第二种形式中,当obj是对Character类的一个引用时,其
功能与第一种形式一样。否则它将引发一个ClassCastException异常。这些方法是在Java 2
中新增加的。
Character类还定义了equals( )和hashCode( )方法。
另两个与字符有关的类是 Character.Subset 和 Character.UnicodeBlock ,其中
 
Character.Subset类用于描述Unicode编码的一个子集,而Character.UnicodeBlock类中包含了
Unicode 2.0编码的字符块。

java.util 第 1 部分:类集框架

封装以下类库

AbstractCollection (Java 2) EventObject Random AbstractList (Java 2) GregorianCalendar ResourceBundle AbstractMap (Java 2) HashMap (Java 2) SimpleTimeZone AbstractSequentialList (Java 2) HashSet (Java 2) Stack AbstractSet (Java 2) Hashtable StringTokenizer ArrayList (Java 2) LinkedList (Java 2) Timer (Java 2, v1.3) Arrays (Java 2) ListResourceBundle TimerTask (Java 2, v1.3) BitSet Locale TimeZone Calendar Observable TreeMap (Java 2) Collections (Java 2) Properties TreeSet (Java 2) Date PropertyPermission (Java 2) Vector Dictionary PropertyResourceBundle WeakHashMap (Java 2) java.util定义了如下的接口。注意其中大多数是在Java 2中新增加的。 Collection (Java 2) List (Java 2) Observer Comparator (Java 2) ListIterator (Java 2) Set (Java 2) Enumeration Map (Java 2) SortedMap (Java 2) EventListener Map.Entry (Java 2) SortedSet (Java 2)

大部分是和集合相关的

LinkedList类

LinkedList类扩展AbstractSequentialList并执行List接口。它提供了一个链接列表数据结 构。它具有如下的两个构造函数,

说明如下: LinkedList( ) LinkedList(Collection c) 第一个构造函数建立一个空的链接列表。第二个构造函数建立一个链接列表,该链接 列表由类集c中的元素初始化。 除了它继承的方法之外,LinkedList类本身还定义了一些有用的方法,这些方法主要用 于操作和访问列表。

使用addFirst( )方法可以在列表头增加元素;

使用addLast( )方法可以在 列表的尾部增加元素。

它们的形式如下所示: void addFirst(Object obj) void addLast(Object obj) 这里,obj是被增加的项。 调用getFirst( )方法可以获得第一个元素。

调用getLast( )方法可以得到最后一个元素。

它们的形式如下所示: Object getFirst( ) Object getLast( )

为了删除第一个元素,可以使用removeFirst( )方法;为了删除最后一个元素,可以调 用removeLast( )方法。

它们的形式如下所示: Object removeFirst( ) Object removeLast( )

下面的程序举例说明了几个LinkedList支持的方法。

// Demonstrate LinkedList. import java.util.*; class LinkedListDemo { public static void main(String args[]) { // create a linked list LinkedList ll = new LinkedList(); // add elements to the linked list ll.add("F"); ll.add("B"); ll.add("D"); ll.add("E"); ll.add("C"); ll.addLast("Z"); ll.addFirst("A"); ll.add(1, "A2"); System.out.println("Original contents of ll: " + ll); // remove elements from the linked list ll.remove("F"); ll.remove(2); System.out.println("Contents of ll after deletion: " + ll); // remove first and last elements ll.removeFirst(); ll.removeLast(); System.out.println("ll after deleting first and last: " + ll); // get and set a value Object val = ll.get(2); ll.set(2, (String) val + " Changed"); System.out.println("ll after change: " + ll); } } 该程序的输出如下所示: Original contents of ll: [A, A2, F, B, D, E, C, Z] Contents of ll after deletion: [A, A2, D, E, C, Z] ll after deleting first and last: [A2, D, E, C] ll after change: [A2, D, E Changed, C]

因为LinkedList实现List接口,调用add(Object)将项目追加到列表的尾部,如同addLast( ) 方法所做的那样。使用add( )方法的add(int, Object)形式,插入项目到指定的位置

注意如何通过调用get( )和set( )方法而使得ll中的第三个元素发生了改变。为了获得一 个元素的当前值,通过get( )方法传递存储该元素的下标值。为了对这个下标位置赋一个新 值,通过set( )方法传递下标和对应的新值。

通过迭代函数访问类集

通常希望循环通过类集中的元素。例如,可能会希望显示每一个元素。到目前为止, 处理这个问题的最简单方法是使用iterator,iterator是一个或者实现Iterator或者实现 ListIterator接口的对象。Iterator可以完成循环通过类集,从而获得或删除元素。ListIterator 扩展Iterator,允许双向遍历列表,并可以修改单元。Iterator接口说明的方法总结在表15-4 中。ListIterator接口说明的方法总结在表

使用迭代函数 在通过迭代函数访问类集之前,必须得到一个迭代函数。

每一个Collection类都提供一 个iterator( )函数,该函数返回一个对类集头的迭代函数。通过使用这个迭代函数对象,可 以访问类集中的每一个元素,一次一个元素。通常,使用迭代函数循环通过类集的内容,

步骤如下: 1. 通过调用类集的iterator( )方法获得对类集头的迭代函数。

2. 建立一个调用hasNext( )方法的循环,只要hasNext( )返回true,就进行循环迭代。

     3. 在循环内部,通过调用next( )方法来得到每一个元素。

对于执行List的类集,也可以通过调用ListIterator来获得迭代函数。正如上面解释的那 样,列表迭代函数提供了前向或后向访问类集的能力,并可让你修改元素。否则,ListIterator 如同Iterator功能一样。 这里是一个实现这些步骤的例子,说明了Iterator和ListIterator。它使用ArrayList对象, 但是总的原则适用于任何类型的类集。当然,ListIterator只适用于那些实现List接口的类集。

JAVA-基础(三)的更多相关文章

  1. Java 基础三、接口与内部类

    1.   在Java程序语言中,接口是对类的一种描述.例如Arrays类中sort方法声明可以对对象进行排序,但前提是对象所属的类必须实现Comparable接口. public interface ...

  2. java基础(三)

    1.枚举类,使用enum定义的枚举类默认继承java.lang.Enum,而不是Object类.枚举类的所有实例必须在枚举类中显示列出,否则这个枚举类永远都不能产生实例.相关内容较多,需要后续继续跟进 ...

  3. java基础三种循环的使用及区别

    摘要:Java新人初学时自己的一些理解,大神们路过勿喷,有什么说的不对不足的地方希望能给予指点指点,如果觉得可以的话,希望可以点一个赞,嘿嘿,在这里先谢了.在这里我主要说的是初学时用到的Java三个循 ...

  4. java 基础三

    1 运算符 1.1  比较运算符 比较运算符的结果都是boolean类型,也即是要么是true,要么是false. 比较运算符"=="不能写成"=". > ...

  5. Java基础(三)-final关键字分析

    今天来谈谈final关键字的作用, 虽然有很多博文关于final进行了很深的研究,但还是要去记录下谈谈自己的见解加深下印象.下面直接进入主题: 一.final关键字的作用 1.被final修饰的类不能 ...

  6. java基础(三)-----java的三大特性之多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  7. java基础(三):反射、反序列化破解单列模式和解决方式

    单例模式指的是一个类只有一个对象,通过一些措施达到达到这个目的.但是反射和反序列化可以获得多个不同的对象. 先简单的认识一下单例模式 一:单例模式 通过私有构造器,声明一个该类的静态对象成员,提供一个 ...

  8. Java基础三(Scanner键盘输入、Random随机数、流程控制语句)

    1.引用类型变量的创建及使用2.流程控制语句之选择语句3.流程控制语句之循环语句4.循环高级 ###01创建引用类型变量公式 * A: 创建引用类型变量公式 * a: 我们要学的Scanner类是属于 ...

  9. java基础(三) 加强型for循环与Iterator

    引言   从JDK1.5起,增加了加强型的for循环语法,也被称为 "for-Each 循环".加强型循环在操作数组与集合方面增加了很大的方便性.那么,加强型for循环是怎么解析的 ...

  10. java基础 三 概念和java程序的结构.

    一.java的一些概念: JRE(java  runtime environment):java程序运行环境,如果要运行java程序,需要jre支持.jre里包含jvm JDK(java  devel ...

随机推荐

  1. JavaWeb项目开发中eclipse缓存问题

    学习Java快2年了 有时候改完代码启动tomcat测试时,新代码不生效,这可能就是缓存问题. 所以平时就用以下几个方法解决,如果还是解决不了,就找老师吧! 1.清理项目 2.移除项目,清理tomca ...

  2. java核心技术 - 17个重要的知识点

    1.Java中没有多继承,而是用接口来代替多继承 2.运行一个已经编译的程序时,Java解释器总是从指定类的main方法中的代码开始执行,因此,执行代码中必须有一个main函数. 3.Java是典型的 ...

  3. SharpSvn操作 -- 获取Commit节点列表

    /// <summary> /// 获取工作目录的所有节点,包括子目录 /// </summary> /// <param name="workingCopyD ...

  4. CAS 配置NLB 负载均衡网络无法连接

    在虚拟机与虚拟机.虚拟机与实机之间利用Windows操作系统自带的网络负载均衡功能如选择单播集群模式,网络就无法通讯,NLB不成功. Scenario #1 在虚拟机与虚拟机之间选择多播模式NLB可正 ...

  5. UVA 562 Dividing coins 分硬币(01背包,简单变形)

    题意:一袋硬币两人分,要么公平分,要么不公平,如果能公平分,输出0,否则输出分成两半的最小差距. 思路:将提供的整袋钱的总价取一半来进行01背包,如果能分出出来,就是最佳分法.否则背包容量为一半总价的 ...

  6. 【UML】类图Class diagram(转)

    http://blog.csdn.net/sds15732622190/article/details/48860711 前言 说到UML,相信大家就能立刻反应出其中的类图,为什么这么说呢,类图和用例 ...

  7. HTML_4

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  8. lca(最近公共祖先(在线)) 倍增法详解

    转自大佬博客 : https://blog.csdn.net/lw277232240/article/details/72870644 描述:倍增法用于很多算法当中,通过字面意思来理解 LCA是啥呢 ...

  9. Web前端 优化方案

    1.减少Http请求  在一个页面中图片,CSS,JS可能N个,如果每个资源都去请求一次服务器的话,那么服务器就会为每个资源开一个线程来完成,这样的话对服务器的压力就很大了.所以解决的方法就是合并资源 ...

  10. JavaScript中数组的使用

    ---恢复内容开始--- 创建数组 1,通过 var arr1 = [1,2,3] 2通过使用 var arr2 = new Array(1,2,3) 在这里创造的数组实际上都是一个对象,然后把对象的 ...