------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
字符串处理,非常重要,使用频率相当的高
java中,字符串是一个对象,java.lang.String类,描述字符串对象的
1. 创建字符串
String str = "abc";
String s = new String("abc");
2. 字符串的特点:
在java中,字符串是双引号引起来,字符串对象,凡是双引号引起来的,字符串对象
字符串是一个常量,(一旦被创建,就不会被改变)
字符串存储在内存的什么地方? 方法区,常量池,单个字符 'a''b''c'
3. 面试题,参照StringDemo.java中的程序
4. String类的构造方法
|-- String(byte[] bytes) 将字节数组转成字符串
|-- String(byte[] bytes, int offset, int length) offse开始索引 length个数
|-- String(char[] value)
|-- String(char[] value, int offset, int count)
5. String类的判断方法
|-- boolean equals(Object obj) 比较字符串的内容是否相等
|-- boolean contains(String s) 判断一个字符串是否包含另一个字符串
|-- boolean startsWith(String) 判断一个字符串是否以另一个字符串开头
|-- boolean endsWith(String) 判断一个字符串是否以另一个字符串结尾
|-- boolean isEmpty()判断一个字符串是否有内容
6. String类的获取方法
|-- char chatAt(int index),指定索引,返回这个索引上的字符
|-- int indexOf(char c)返回字符在此字符串中第一个出现的索引
|-- int indexOf(char c ,int fromIndex)返回字符在此字符串中第一个出现的索引,从指定索引开始查找
|-- int indexOf(String s)返回字符串在此字符串中第一个出现的索引
|-- int indexOf(String s ,int fromIndex)返回字符串在此字符串中第一个出现的索引,从指定索引开始查找
|-- int lastIndexOf(char c) 反向索引
|-- String substring(int start ,int end)获取字符串中的一部分 包含头,不包含尾
7. String类的转换方法
|-- char[] toCharArray()将字符串转成字符数组
|-- byte[] getBytes()将字符串转成字节数组
|-- String toUpperCase()将字符串转成大写
|-- String toLowerCase()将字符串转成小写
|-- static String valueOf
8. String类其它方法
|-- String[] split()切割字符串
|-- String replace(old char ,new char)替换字符串
|-- String trim()去掉字符串两端的空格
9. String类型的案例
|-- 定一个字符串sdfghxcnm,请你按照字母的字典顺序排序
|-- 允许使用toCharArray方法
|-- 让用户使用的时候,调用一个方法 String s = stringSort(s);
功能实现步骤:
1. 将字符串转成字符数组 toCharArray
2. 对数组排序
3. 将排序后数组,转成字符串
|-- 模拟equals方法
|-- 将一个字符串中的大写转成小写,小写转成大写
aBCdefGh AbcDEFgH
|-- 判断一个字符串是否是回文
abcba 12321
package cn.itcast.string;
public class StringTest {
public static void main(String[] args) {
System.out.println(6>>400);
boolean b = myEquals("a啊", "a啊");
System.out.println(b);
String s = toUpperToLower("ss");
System.out.println(s);
}
//定义功能,实现字母的大小写互换
public static String toUpperToLower(String s){
//健壮性判断
if( s == null)// s==null
throw new RuntimeException("数据非法");
if( "".equals(s))
return s;
//将字符串转成字符数组
char[] ch = s.toCharArray();
//定义新的字符数组,保存转大小写后的字符
//char[] temp = new char[s.length()];
//遍历数组
for(int x = 0 ; x < ch.length ; x++){
//将单个字符进行大写小写的判断
if(ch[x]>=65 && ch[x]<=90){
//是一个大写字母,+32转成字符,存到新数组
ch[x] = (char)(ch[x]+32);
}else if(ch[x]>=97 && ch[x]<=122){
//是一个小写字母,-32转成字符,存到新数组
ch[x] = (char)(ch[x]-32);
}
}
//将存储的新数组。转成字符串并返回
return new String(ch);
}
//定义方法,实现比较2个字符串,如果全等返回真
public static boolean myEquals(String s1 , String s2){
//对传递的字符串进行健壮性判断
if(s1==null || s2 == null)
//抛出异常,数据传递非法,让程序停下来
throw new RuntimeException("数据非法");
//对字符串的长度进行判定
if(s1.length() != s2.length())
return false;
//转成字符数组
char[] ch1 = s1.toCharArray();
char[] ch2 = s2.toCharArray();
//遍历数组
for(int x = 0 ; x < ch1.length ; x++){
//对字符数组中的每一个元素进行比较
if(ch1[x] != ch2[x])
return false;
}
//遍历完毕,没有返现不相等的字符,返回true
return true;
}
}