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);