---------------------- android培训、java培训、期待与您交流! ----------------------
1.String 是java.lang包下的被final修饰的类 从JDK1.0开始就出现了
2.String str = new String("abc");和String str="abc";是等同的
但是第一个一共是两个对象也是一个对象(new了一个新对象 “abc”) 第二个是一个对象
"abc"是一个对象 字符串就是一个特殊的对象
3.字符串最大的特点是:一旦被初始化就不可以被改变 因为它是被final修饰的
4.关于:
而string重写了equals方法 它比较的是字符串的内容 而不是两个对象的地址值是否相同
5. 字符串都是放在常量池的
6. 常见的操作:
获取:*字符串包含的个数,也就是字符串的长度
返回类型是:int 方法是:length(); String str="abc";
int i=str.length(); 长度是3
*根据位置获取位置上某个字符
char c=str.charAt(3);
*根据字符获取该字符在字符串中第一次出现的位置
返回类型是:int 方法是:indexOf(int c)//这里面的是字符对应的ASCII的值
indexOf(int c ,int fromIndex)从fromIndex指定的位置开始
* 获取c字符在字符串出现的位置 (第一次的位置)
indexOf(String str) 返回的是str在字符串中第一次出现的位置
* 获取str字符在字符串第一次出现的位置
int lastindexOf(int ch,int fromIndex)返回指定字符在此字符串中
* 最后一次出现处的索引从指定的索引处开始进行反向搜索
int lastindexOf(String ch,int fromIndex)返回指定字符在此字符串中
* 最后一次出现处的索引从指定的索引处开始进行反向搜索
判断:*判断两个字符串的内容是否相同,区分大小写
返回类型是:boolean 方法是:equalsIgnoreCase(String anotherString)
*判断字符串是否以某个字符串开头
返回类型是:boolean 方法是:startWith(String s);
*判断字符串是否以某个字符串结尾
返回类型是:boolean 方法是:endWith(String s);
截取:substring(int beginIndex)从角标是beginIndex开始截取到最后
substring(int beginIndex,int endIndex)从角标是beginIndex开始截取到endIndex之前的角标所对应的字符串
字符串转换:
把字符串转换成字节数组 byte[] b=str.getBytes();
把字符串转换成字符数组 char[] c=str.toCharArray();
基本数据类型转换成字符串
int i=4;
String str=i.valueOf(i);
或者 String str=i+"";
把字符串中所有字符转换成大写
toUpperCase();
把字符串中所有字符转换成小写
toLowerCase();
字符串替换
(替换字符)replace(char oldChar , char newChar);
(替换字符串)replace(String target, String replacement);
切割 返回的类型是String[] 方法是:split(String str)
去除两边空格 返回的类型是String 方法是: trim();
按照字典顺序比较两个字符串
compareTo();
/*小练习 * 两个字符串的最大相同子串。 * 比如: * "sadabcdfghjkl" "werabcdtyu" */public class StringTest3 { public static void main(String[] args) { String s1 = "sadabcdfghjkl"; String s2 = "werabcdtyu"; System.out.println(getMaxSubString(s1,s2)); } /* * 查找两个字符串的最大相同子串 明确: 返回结果 String 未知内容 两个字符串 */ public static String getMaxSubString(String s1, String s2) { // 定义两个变量,用于分别保存长串,和短串. String max, min; max = s1.length() > s2.length() ? s1 : s2; min = s1.length() <= s2.length() ? s1 : s2; for(int x=0; x<min.length(); x++){ //我们用y表示min串的头角标,z表示min串的尾角标. for(int y=0,z=min.length()-x; z<=min.length(); y++,z++){ String temp = min.substring(y,z); if(max.contains(temp)){ return temp; } } } return null; }} ---------------------- android培训、java培训、期待与您交流! ----------------------