String类的常用方法
字符串长度 length()
字符串某角标字符 charAt()
字符串中某内容第一次出现的位置 indexOf()
反向索引内容位置 lastIndexOf()
字符串某角标字符的ASCII codePointAt()
字符串中是否包含 contains()
字符串是否为空 isEmpty()
字符串是否以指定内容开头或结束 startsWith()\endsWith()
字符串内容是否相同 equals()
字符串内容是否相同(不区分大小写) equalsIgnoreCase()
将基本类型转换成字符串 valueOf()
将基本类型数组转换在字符串 new String()
将字符串转换成字符数组 toCharArray()
将字符串转换成字节数组 getBytes()
字符串替换 replace()
切割字符串 split()
截取子串 substring()
转换大小写 toUpperCase()\toLowerCase()
去除字符串空格 trim()
字符串比较 compareTo()
字符串连接 concat()
获取字符串长度
int length();
//注意:长度是指个数,不是字节数。
获取字符串位置上某个字符
char charAt(int index);
//当int index的值大于字符串最大的角标时,会发生StringIndexOutOfBoundsException错误。
根据字符获得该字符在字符串中的位置
int indexOf(int ch); //返回ch在字符串中第一次出现的位置
int indexOf(int ch, int fromIndex); //从fromIndex指定位置开始,获取ch在字符串中出现的位置
int indexOf(String str); //返回str在字符串中第一次出现的位置
int indexOf(String str, int fromIndex); //从fromIndex指定位置开始,获取str在字符串中出现的位置
/**如果在字符串中没有找到该ch或str,则返回-1**/
反向索引一个字符出现位置(字符串存入内存时,就存在角标)
int lastIndexOf(String str); //从字符串的后面找起
指定字符串位置中的字符的ASCII码
int codePointAt(int index); //返回指定字符串位置中的字符的ASCII码值
字符串中是否包含某一个字串
boolean contains(str);
/**
特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1,表示str不在字符串中存在。所以,也可以用于指定判断是否包含。
if(str.indexOf("aa")!=-1)
该方法即可以判断是否包含,又可以获取出现在的位置。
如果只是要判断是否包含,就用contains()
**/
字符串中是否有内容
boolean isEmpty(); //原理:判断长度是否为0
字符串是否以指定的内容开头
boolean startsWith(str);
字符串是否以指定的内容结尾
boolean endsWith(str);
/** 实战案例:判断文件是否是Array开头,.java结尾,并且中文名中包含Demo的文件。**/
判断字符串内容是否相同
boolean equals(str);
判断内容是否相同,并忽略大小写
boolean equalsIgnoreCase(str);
将字符数组转成字符串
构造方法:
String(char[]); //将char数组转成字符串
String(char[], offset, count); //将char数组中的一部分转成字符串,offset第几位开始,count往后几位
/** 案例1:
char[] arr={'a','b','c','d','e','f','g'};
String s =new String(arr);
System.out.println("s="+s); //返回:s=abcdefg
案例2:
char[] arr={'a','b','c','d','e','f','g'};
String s =new String(arr,1,3);
System.out.println("s="+s); //返回:s=bcd
**/
静态方法:
static String copyValueOf(char[]);
static String copyValueOf(char[] data, int offset, int count);
static String valueOf(char[]);
/** 案例:
char[] arr={'a','b','c','d','e','f','g'};
String a=String.copyValueOf(arr);
//返回:abcdefg
**/
将字符串转成字符数组
char[] toCharArray();
/** 案例:
String str="abd dfsdof@43";
char[] arrc=str.toCharArray();
//遍历char[],在此省略。
**/
将字节数组转成字符串
String(byte[]);
String(byte[], offset, count); //将字节数组中的一部分转成字符串
将字符串转成字节数组
byte[] getBytes();
将基本数据类型转成字符串
static String valueOf(int);
static String valueOf(double);
/** 案例:转字符串
3+"";
String.valueOf(3);
//2种相同,第一种常用,第二种专业
**/
替换:
String replace(oldchar, newchar);
String replace(oldstr, newstr);
/** 如果要替换的字符不存在,返回的还是原来的字符串 **/
切割:
String[] split(regex);
子串:(获取字符串中的一部分)
String substring(begin);
String substring(begin, end);
/** 字符第一位是0; 包含头,不包含尾; 如果角标不存在,会出现字符串角标越界异常 **/
/** 案例1:获取整个字符串:
String str="abcdefg";
//方法一:
String stra=str.substring(0, str.length()-1);
//方法二:
String strb=str.substring(0);
**/
将字符串转成大写或小写
String toUpperCase();
String toLowerCase();
将字符串两端的空格去除
String trim(); //trim('倾慕)整齐,修剪
对两个字符串进行自然顺序的比较
int compareTo();
/** 逐个比较ASCII码值:大于返回一个>=1的值;等于返回0;小于返回-1 **/
对两个字符串进行连接
String concat(str);
字符串格式占位符
String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。
转换符
说明
示例
%s
字符串类型
"abc"
%c
字符类型
'a'
%b
布尔型
%d
十进制
%f
浮点型
%%
百分比
%n
换行符
%tx
日期与时间类型(x代表不同的日期与时间转换符)
String str=String.format("Hi,%s:%s.%s", "王南","王力","王张");
System.out.println(str);
结果:Hi,王南:王力.王张
转换符说明示例
c
包括全部日期和时间信息
星期六 十月 27 14:21:20 CST 2007
F
“年-月-日”格式
2007-10-27
D
“月/日/年”格式
10/27/07
r
“HH:MM:SS PM”格式(12时制)02:25:51 下午
T
“HH:MM:SS”格式(24时制)14:28:16
R
“HH:MM”格式(24时制)
14:28
Date date=new Date();
//c的使用
System.out.printf("全部日期和时间信息:%tc%n",date);
//f的使用
System.out.printf("年-月-日格式:%tF%n",date);
//d的使用
System.out.printf("月/日/年格式:%tD%n",date);
//r的使用
System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);
//t的使用
System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);
//R的使用
System.out.printf("HH:MM格式(24时制):%tR",date);
全部日期和时间信息:星期一 九月 10 10:43:36 CST 2012
年-月-日格式:2012-09-10
月/日/年格式:09/10/12
HH:MM:SS PM格式(12时制):10:43:36 上午
HH:MM:SS格式(24时制):10:43:36
HH:MM格式(24时制):10:43
评论 (0)