String 字符串
str1.equalsIgnoreCase(str2); //忽略大小写比较字符串内容
str1.compareTo(str2); // str1>str2返回正数,等于返回0,小于返回负数
str1.contains(" "); //查询str1中是否含有字符串内容
str1.IndexOf(" "); // 查询str1是否含有字符串内容,若有则返回下标
str1.IndexOf(" ",int index); // 从index位置开始查询str1是否含有字符串内容,若有则返回下标
str1.lastIndexOf(" "); //从最后位置开始往前找,查询是否含有字符串内容,若有则返回下标
str1.lastIndexOf(" ",int index); //从index位置开始往前找,查询是否含有字符串内容,若有则返回下标
str1.starsWith("a"); //判断是否以字符串a开头
str1.starsWith("a",int index); //从下标index位置开始判断是否以字符串a开头
str1.endWith("a"); //是否以字符串a结尾
str1.replaceAll("aa","hh"); //将字符串str1中所有的aa替换成hh(没有改变原字符串)
str1.replaceFirst("aa","hh"); //将字符串str1中第一次出现的aa替换成hh
str1.split("&");以&为界限进行分割,返回值为String数组,若以"."(*,+,-,|等等)进行分割,需要在前面加"//",即"//."
str1.split("&", int limit); //以&为界限进行分割,分割成limit份,返回值为String数组
split分割时若要以多种分隔符进行分割,中间需要用 | 进行分割
eg:str1.split("#|&"); //同时以#和&进行分割
str1.substring(2,4) //提取str1中[2,4)中的字符串
str1.trim(); //去掉字符串两边的空格
str.toLower(Uper)Case(); //字符串转大小写
str.isEmpty();检查字符串时候为空(判断是否为 "而不是判断是否为null,null代表不指向任何对象,会空指针异常)
StringBuilder sb = new StringBuilder("abcd");
sb.append("hello"); //在原字符串上进行拼接
StringBuffer sb2 = new StringBuffer("abcd");
sb2.append("hello");
String,StringBuilder,StringBuffer区别:
1.后两者包含了一些String没有的方法,比如reverse方法
2.后两者可变,String不可变,String拼接引用了新对象,后两者还是返回this
3.StringBuffer可以保证线程的安全(带有synchronized关键字),单线程使用 S StringBuilder和String,多线程使用StringBuffer
String和StringBulider区别:
1.String一旦进行拼接,就会被优化为StringBuilder
2.String在循环中不可直接拼接,这样会产生大量对象
集合
1.Collection接口
Collection<String> collection = new ArrayList<>(); //<指定类型>
eg: collection.add("aa");
collection.clear();
2.Map接口
Map<String,String> map = new HashMap<>(); //<指定类型>
map.put(key,value);
map.put("玄奘","唐僧");
map.put("及时雨","宋江");
map.put("及时雨","宋江2"); //对应key的value会被更新
关于存放的顺序:不一定就是打印的顺序,因为在map当中存储元素时,不是按照顺序进行存储的,具有特定的方式:哈希函数映射
map.get(key);
String str = map.get("玄奘"); //输出唐僧