JAVA-基础(三)
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-基础(三)的更多相关文章
- Java 基础三、接口与内部类
1. 在Java程序语言中,接口是对类的一种描述.例如Arrays类中sort方法声明可以对对象进行排序,但前提是对象所属的类必须实现Comparable接口. public interface ...
- java基础(三)
1.枚举类,使用enum定义的枚举类默认继承java.lang.Enum,而不是Object类.枚举类的所有实例必须在枚举类中显示列出,否则这个枚举类永远都不能产生实例.相关内容较多,需要后续继续跟进 ...
- java基础三种循环的使用及区别
摘要:Java新人初学时自己的一些理解,大神们路过勿喷,有什么说的不对不足的地方希望能给予指点指点,如果觉得可以的话,希望可以点一个赞,嘿嘿,在这里先谢了.在这里我主要说的是初学时用到的Java三个循 ...
- java 基础三
1 运算符 1.1 比较运算符 比较运算符的结果都是boolean类型,也即是要么是true,要么是false. 比较运算符"=="不能写成"=". > ...
- Java基础(三)-final关键字分析
今天来谈谈final关键字的作用, 虽然有很多博文关于final进行了很深的研究,但还是要去记录下谈谈自己的见解加深下印象.下面直接进入主题: 一.final关键字的作用 1.被final修饰的类不能 ...
- java基础(三)-----java的三大特性之多态
面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...
- java基础(三):反射、反序列化破解单列模式和解决方式
单例模式指的是一个类只有一个对象,通过一些措施达到达到这个目的.但是反射和反序列化可以获得多个不同的对象. 先简单的认识一下单例模式 一:单例模式 通过私有构造器,声明一个该类的静态对象成员,提供一个 ...
- Java基础三(Scanner键盘输入、Random随机数、流程控制语句)
1.引用类型变量的创建及使用2.流程控制语句之选择语句3.流程控制语句之循环语句4.循环高级 ###01创建引用类型变量公式 * A: 创建引用类型变量公式 * a: 我们要学的Scanner类是属于 ...
- java基础(三) 加强型for循环与Iterator
引言 从JDK1.5起,增加了加强型的for循环语法,也被称为 "for-Each 循环".加强型循环在操作数组与集合方面增加了很大的方便性.那么,加强型for循环是怎么解析的 ...
- java基础 三 概念和java程序的结构.
一.java的一些概念: JRE(java runtime environment):java程序运行环境,如果要运行java程序,需要jre支持.jre里包含jvm JDK(java devel ...
随机推荐
- MyBatis学习总结(三)---映射文件及引入方式
MyBatis的强大,主要原于它强大映射功能,相对其它的jdbc,使用MyBatis,你会发现省掉很多代码.上一篇已经简单做出一个实例.今天就了解一下MyBatis的映射xml文件. 了解上一篇fri ...
- springboot使用过滤器和拦截器
1.Filter过滤器 @Componentpublic class AuthFilter implements Filter { private static final Log log = Log ...
- 9、调整数组顺序使奇数位于偶数前面------------>剑指offer系列
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 思路 首先寻找第一个 ...
- ERwin DM Reverse Engineer 逆向工程介绍
介绍内容:利用ERwin DM进行对本地 Oracle 数据库的逆向工程 ERwin DM Version:7.3 ERwin DM 提供两种方式的逆向工程方法,分别是基于脚本文件和基于数据库. 下面 ...
- 用指针的方式实现,重写strrchr函数的功能
char *strchrTest(char * ptr,char c); Action(){ char str[]={"thisisadog"}; char c='s'; lr_o ...
- Android(java)学习笔记133:Eclipse中的控制台不停报错Can't bind to local 8700 for debugger
[DDMS] Can't bind to local 8600 for debugger 改成 Under Window -> Preferences -> Android -> D ...
- Python-OpenCV中的resize()函数
改变图像大小意味着改变尺寸,无论是单独的高或宽,还是两者.也可以按比例调整图像大小. 这里将介绍resize()函数的语法及实例. 语法 函数原型 cv2.resize(src, dsize[, ds ...
- superset docker 部署
公众号原文有更多效果图哦 一.使用自己的数据库 1. 拉取项目 // 创建目录用于存放项目 mkdir -p /mnt/superset cd /mnt/superset git clone http ...
- js实现23种设计模式(收藏)
js实现23种设计模式 最近在学习面向对象的23种设计模式,使用java 和 javascript 实现了一遍,但是因为目前大三,还没有比较正规的大项目经验,所以学习的过程种我觉得如果没有一定的项目经 ...
- atoi 函数实现
要考虑的东西实在也挺多的.总结如下: 1 前面空格分隔符号的时候 2 第一个符号位处理+ - 3 遇到非数字字符退出 4 为正数的时候,大于INT_MAX上溢 5 为负数的时候 ...