在Java中,字符串常量是一个类型为java.lang.String类的对象。通过使用String类提供的方法可以完成对字符串的各种操作。
1、String类的构造方法
String() 创建一个空字符串;如:String str1=new String();
String(char[] value) 根据字符数组创建一个新字符串;如:char[] arr={'a','b','c'};String str2=new String(arr);
String(byte[] value) 根据字节数组新建一个字符串;byte[] b={'f','g','h'};String str3=new String(b);
String(String value) 创建一个新字符串作为指定字符串的副本;如:String str4=new String(str3);
2、String类的常用方法
(1)字符串长度length()
String name="John House"; int len=name.length(); len的值为10;
(2)字符串比较
= =检查两个操作数是否指向同一对象;equals()方法检查两个操作数的内容是否相同。
例:比较两个字符串是否相等
(3)搜索和提取字符串
String substring(int beginIndex) ;返回从指定位置开始的字符串;如:"unhappy".substring(2) returns "happy"
String substring(int beginIndex, int endIndex);返回从指定位置beginIndex到endIndex之间的字符型; 如:"hamburger".substring(4, 8) returns "urge"
String trim();删除字符串前后的空格,并返回;
int indexOf(char ch); 返回字符串中第一次出现字符ch的位置
int indexOf(String value);返回字符串中第一次出现字符串value的位置
int lastIndexOf(char ch);返回字符串中最后一次出现字符ch的位置
int lastIndexOf(String value);返回字符串中最后一次出现字符串value的位置
例:提取和搜索字符串
(4)字符串的连接
String concat(String str);将指定字符串连接到此字符串的结尾。如:"cares".concat("s") returns "caress";
用“+”运算符连接。如:String str="How"+"are"+"you";
为了能在Java中将基本数据类型作为对象来进行处理,并能使用相关的属性和方法;Java语言在Java.lang包中为每个基本数据类型提供了一个相应的封装类。
在封装类中定义了对应基本数据类型的一些常数,还包含一个与封装类对应的基本数据类型字段;提供了了基本数据类型和字符串的相互转换方法。
如:Double类的主要属性和方法,见API
例:封装类的属性和方法
java.util.Scanner类用以实现接收用户从键盘输入的信息,也可从字符串和文件读取数据。Scanner类常用方法:
Scanner(InputStream source);构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。
Scanner(String source);构造一个新的 Scanner,它生成的值是从指定字符串扫描的。
void close();关闭此扫描器。
boolean hasNext();如果此扫描器的输入中有另一个数据,则返回 true。
String next();查找并返回来自此扫描器的下一个完整数据。
boolean nextBoolean();扫描解释为一个布尔值的输入标记并返回该值。
byte nextByte();扫描读取下一个数据,该数据被标识为byte。
double nextDouble();扫描读取下一个数据,该数据被标识为double。
float nextFloat();扫描读取下一个数据,该数据被标识为float。
int nextInt();扫描读取下一个数据,该数据被标识为int。
Scanner useDelimiter(Pattern p);将此扫描器的分隔模式设置为指定模式。
例:根据输入的值计算总金额
1、Date类
Date类提供了操作时间的基本功能。Date类的对象表示当前的日期和时间,提供了获取日期和时间各组成部分的方法。Date对象必须通过toString()方法转换为字符串后,才能准确地输出其中的值,否则输出的是一个长整型值。
Date类的两种构造方法:
Date();使用当前系统日期和时间创建对象
Date(long date);使用自1970年1月1日0时0分0秒以后的制定毫秒数创建对象
例:获取当前系统的时间,显示不同格式的月份和时间
2、Calendar类
Date类的替代者,Calendar类是一个抽象类 ,不能用new运算符实例化对象,只能通过getInstance()方法获得一个Calendar对象 。该对象能够根据特定语言和日历风格,生成日期时间格式化所需要的所有日历字段值。
getInstance();返回默认地区和时区的Calendar对象 。
add(int original,int value);将value添加到original指定的时间或日期部分。
get(int calFields);根据指定的值,返回对应的年、月、日等。
set(int which,int val);根据指定的值,设置对应的年、月、日等值。
getTime();返回一个表示当前对象时间值的Date对象。
after(Object c);判断当前对象表示的时间是否在c表示的时间之后。
before(Object c);判断当前对象表示的时间是否在c表示的时间之前。
Calendar类还定义了用于获取或设置Calendar各组成部分的int常量YEAR、MONTH、DAY、AM_PM等。
例:Calendar类的使用
一、数值型数据与字符串之间的转换
1、数值型数据转换为字符串
(1)使用封装类对应的toString()方法,如:
(2)使用String类的valueOf()方法
2、字符串转换为数值型数据
(1)使用封装类的parseXXX()方法,如:
(2)使用valueOf()方法,如:
二、日期型数据与字符串之间的转换
Java专门提供了java.text.SimpleDateFormat类实现字符串与日期型数据的相互转换。
SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat类的常用方法:
SimpleDateFormat(String pattern);构造方法,用给定的模式构造该类的对象;
format(Date date);将一个Date对象格式化为日期/时间字符串;
parse(String source);从给定字符串的开始分析文本,以生成一个日期;
applyPattern(String pattern);将给定模式字符串应用于日期格式;
toPattern();返回描述此日期格式的模式字符串;
例:SimpleDateFormat类的使用
Java的集合类是一个容器,用来存放Java类的对象,代表一组对象的对象。集合中的这组对象称为集合的元素。集合中的每一个元素都是对象,任何数据类型的对象都可以存放在集合中。
集合API中的接口和类主要分布在java.util包中,最基本的接口是Collection接口,其常用方法有:
boolean add(Object e);将指定的对象添加到该集合中。
boolean contains(object o);在集合中检查是否包含指定的元素。
boolean remove(Object o);从集合中移除指定元素的单个实例。
int size();返回集合中的元素个数。
boolean isEmpty();检查集合中是否包含元素。
void clear();移除集合中的所有元素。
一、Set接口与HashSet类
Set接口继承扩展了Collection接口,但没有定义新的方法,它不允许集合中存在重复的元素。
HashSet类作为Set接口的实现类,将元素存放在散列表中。 因HashSet集合中的对象是 无序的,会导致插入对象的顺序与输出对象的顺序不一致的情况。
例:HashSet类的使用
二、List接口与ArrayList类
List继承扩展了Collection接口,同时定义了一些自己的方法:定位方法、搜索方法和ListIterator方法。List是有序集合,运行有相同元素。在进行插入操作时,用户可以控制每个元素的插入位置;用户还可以使用索引访问List中的元素。
ArrayList类是List接口的实现类,采用数字结构存放对象。
例:ArrayList类的使用
三、Map接口与HashMap类
Map接口实现了将键映射到值的机制,其中的键和值都可以是对象。Map中的键不要求有序,不允许重复。值同样不要求有序,但可以重复。
HashMap类是Map接口的实现类。由HashMap类实现的Map集合对于添加和删除映射关系更加高效。
HashMap类的常用方法:
void clear();清空集合里的所有元素
Object put(Object key,Object value);以“键-值”方式向集合中存入数据
Object get(Object key);根据键对象获得相关联的值
int size();获得集合中“键-值对”的个数
Set keySet();返回键的集合
Collection values();返回值的集合
Object remove(Object key);删除指定的键映射的“键-值对”
例:HashMap类的使用
一、泛型的概念
二、泛型类和泛型方法
如果无法确定类中某成员的类型,或者想使某个类适用于描述一类问题时,如:
三、List<E>接口和ArrayList<E>类
List<E>接口与List接口的主要区别是,List<E>接口约束了加入集合中的元素类型只能是E类型,不能包含其它类型的数据;同时从集合中获取的元素一定是E类型,不再需要进行任何的类型转换。
例:把学生信息放入到集合中,在进行排序和输出。
四、Map<K,V>接口和HashMap<K,V>类
使用HashMap<K,V>类,可以规范哈希表的使用,规定HashMap类中键和值的类型。
例:HashMap类的使用