java中用String类来创建按字符串变量
String s = new String(“i love java”);
String s = “i love java ”;
String类的常用方法
== 与 equals 方法的比较
==
引用类型比较,(是否指向同一个对象)只有指向同一个对象才返回true。
用==比较的时候,两边的数据类型必须兼容。(自动类型转换除外)否则编译报错。
equal()
所有类都继承了object,也就是获得了equal()方法。还可以重写。
只要比较引用类型,其作用于 == 相同,是否指向同一个对象。
object1.equal(obj2);
特例:
当用equal()方法进行比较的时候,对类File,String,Date,包装类(Wrapper Class)来说,是比较其类型和内容,而不考虑引用的是否是同一个对象。–因为如上类重写了Object的equal()方法。
String字符串对象操作
public int length() length()方法返回字符串的长度。
public boolean equals (String str) 比较字符串实体内容是否相同。
public boolean contains (String s)
public boolean startsWith(String s) 判断当前字符串是否以 s 字符串 开始。
endsWith 同理。判断当前字符串是否以s 字符串结尾。
public int compareTo(String s)如果当前字符串与s相同那么返回0.如果当前字符串对象大于s(按字典unicode码值比较大小)返回正值,反之负值。
public int indexOf (String s) 从当前字符串开始位置检索字符串s,并返回s出现的位置,若没有检索到s则返回-1.
public boolean regionMatches(int firstStart,String other,int otherStart ,int length)
字符串对象的修改
public String substring(int startpoint / endpoint ) 返回当前字符串的一个子串。
public String replaceAll(String old ,String new)该字符串对象通过用new字符串 替换 当前字符串 中的 old字符串 而得到的一个新的字符串。
public String trim(),去掉字符串前后空格。
public String concat(String str) 将字符串str 连接到当前字符串。
public String[] split(String regex) 根据指定的正则表达式拆分此字符串得到一个字符串数组。
基本类型与字符串类型转换
字符串类型数据转换成基本数据类型
可以使用其封装类例如
Integer,Byte,Short,Long,Float,Double,Character等 parseXxx方法可以将String 转换成其对应的类型。如下:
int i=Integer.parseInt(String str)
将基本数据类型转换成字符串类型
public String valueOf(int n[byte b, short s,… ]),
public char charAt(int index);
String类利用valueOf()方法的重载实现基本数据类型转换成字符串类型。
String 类型与字符数组
public void getChars(int start,int end ,char c[],int offset)
字符串调用getChars()方法,将当前字符串的一部分(起始位置,start ,end )复制到参数 数组c 中。(从数组c 的offset 处开始存放这些字符)
public char[] toCharArray(),字符串对象调用该方法可以初始化一个字符数组。
字符串与字节数组
String(byte[] buf,int offset, int len), 用指定的字节数组构造一个字符串对象。
public byte[] getBytes(),使用平台默认的字符编码,将当前字符串转换成一个字节数组,该方法可以使用String类型的参数作为指定字符编码。
比较 String StringBuffer StringBuilder
- String:不可变的字符序列;底层是使用char[]实现的
- StringBuffer:可变的字符序列;线程安全的;底层是使用char[]实现的
- StringBuilder:可变的字符序列;线程不安全的,效率高;底层是使用char[]实现的
相同点:都是与字符串相关的类
StringBuffer 类能创建可修改的字符串序列。其长度可变,StringBuffer类是一个容器。常用方法:
append(String str)追加字符到当前字符串中。
StringBuffer类的三个构造器
StringBuffer(),
StringBuffer(int size),
StringBuffer(String s)
size 用来初始化字符串容量。
s 可以指定分配给该对象的初始容量为参数字符串s的长度额外再加16个字符。
length()方法获取是实体中存放的字符序列的长度
capacity()方法获取是实体当前的容量。
StringBuffer类的常用方法
append(),将java其他数据类型转化为字符串后,再追加到StringBuffer对象中。
char charAt( int n) 得到参数n指定的位置上的单个字符。 n(非负数,且小于实体中当前字符串的长度。忽略 空格 所占的位置。
void setCharAt(int n ,char ch)用字符ch替换 当前对象的n位置处的字符。
StringBuffer insert(int index,String str)将字符串str插入当前字符串的 index 位置。
public StringBuffer reverse() 将字符串中的字符翻转,并返回当前对象的引用
StringBuffer delete (int startIndex,int endIndex) 从当前字符串中删除一个字符串,并返回当前对象的引用。start 指定了需删除的第一个字符的下标,end指定了需要删除的最后一个字符的下一个字符的下标。不忽略空格的占位
StringBuffer replace (int start ,int end,String str) 当前字符串用str字符串替换。被替换的字符串从start到 end -1的字符串。
总结:
添加:append()
删除:delete(int startIndex, int endIndex)
修改:setCharAt(int n ,char ch) / replace( int startIndex ,int endIndex, String str)
查询: charAt(int n )
插入:insert(int index, String str)
长度:length()
StringTokenizer 类
java.util包中的StringTokenizer 类
构造器 StringTokenizer(String s)为字符串构造一个分析器,默认的分割标记为 空格符 换行符 回车,tab等
StringTokenizer(String s,String delim)为字符串s构造一个分析器,参数dilim中的字符的任意排列组合都是分割标记。
StringTokenizer 对象称为一个字符串分析器,其封装这语言符号和对语言符号进行操作的方法。
nextToken()方法可以逐个获取字符串分析器中的语言符号(单词),每获得一个语言符号,字符串分析器中的负责计数的变量自动减1,该计数变量初始值等于字符串中的单词数目
countTokens() 方法可以得到计数变量的值。
字符串分析器常用while 循环逐个获取语言符号,为了控制循环,我们可以使用StringTokenizer类中下面的方法。
hasMoreTokens()方法,只要计数的变量大于0.该方法就返回true;
日期类
java.lang.System类,提供了如下方法返回 距离1970年1月1日0时0分0秒的毫秒数。
public static long currentTimeMillis();
计算时间的标准 :
UTC (Universal Time Coordinated)
GMT(Greenwich Mean Time)
CST(Central Standard Time)
java.util.Date类
Date()无参构造器,构造一个本地的当地时间对象。
Date(long date),参数可以是上面的方法返回的long类数值。
getTime() 返回距离起始时间的 Date类(Date对象)的毫秒数。
toString() 将Date对象转换成String类型,各式如下:
EE mm dd hh:mm:ss zzz yyyy (zzz 是时间标准 )
格式化时间
SimpleDateFormat 类来实现日期的格式化。其构造方法
public SimpleDateFormat (String pattern)其中patter用来指定格式。
。
public String format ( Date date )从指定的Date对象返回字符串
public Date parse(String source):从给定字符串的开始解析生成一个Date对象。
参数patter 的常用 时间元字符
yy–2位数字年份
yyyy– 4位数字年份
MM –2位数字月份
MMM – 汉字月份
dd–2位数字日期
a–上午或者下午
HH–2位数字小时(00-23)
hh– 2位数字小时(am/pm,01-12)
mm–2位数字分钟
ss–2位数字秒
EE–星期
日历(Calendar )类
java.util.Calendar ,calendar类是一个抽象基类,主要用于完成日期字段之间相互操作的功能。
获得Calendar类的实例的方法
1 调用Calendar.getInstance()方法, 其日历字段已由当前日期和时间初始化:
2 调用其子类 GregorianCalendar的构造器。
Calendar对象可以调用的方法
public final void set (int year,int month,int day)
public final void set(int year,int month,int day,int hour,int minute,int second )
……
Calendar 类利用set方法的重载实现对给定的不同类型时间参数的操作,将日历翻到给定的时间。
public int get(int field)
【field 的有效值是Calendar类的静态常量 例如:
YEAR,MONTH,DAY_OF_WEEK,HOUR_OF_DAY,MINUTE,SECOND.】
获取相关参数的信息,注意该方法返回的是int类型的数据。
cal.set(1996, 1, 24);
long timeone = cal.getTimeInMillis();
cal.set(2015, 10, 27);
long timetwo = cal.getTimeInMillis();
long day = ( timetwo - timeone )/(1000*60*60*24);