这里写目录标题
一级目录
java用String类的toUpperCase()和toLowerCase()方法转字符串的大小写
2.toUpperCase的意思是将所有的英文字符转换为大写字母,如:
String cc = "aBc123".toUpperCase();
//结果就是:ABC123。
3.toLowerCase的意思是将所有的英文字符转换为小写字母,如:
String cc = "aBc123".toLowerCase();
//结果就是:abc123。
备注:这两个方法只对英文字母有效,对除了A~Z和a~z的其余字符无任何效果。
4.contains方法
package servlet;
public class practice {
public static void main(String[] args) {
String string = "sfjsiajfiaofj dfsafsa dfs dnf";
if(string.contains("dnf")){//这个方法可以判断字符转中是不是有这个字段
System.out.println("这里有需要的东西");
}
}
}
一个错误的使用。
class Solution {
static Map<Character,String> map = new HashMap<>(){{
put('2',"abc");
put('3',"def");
put('4',"ghi");
put('5',"jkl");
put('6',"mno");
put('7',"pqrs");
put('8',"tuv");
put('9',"wxyz");
}};
public List<String> letterCombinations(String digits) {
//一个list返回结果
List<String> result = new ArrayList<>();
if(digits.length() == 0){
return result;
}
//先做映射
//将数字字符映射成为字符串
//用一个path接受路径,Path里面放字符串
StringBuffer path = new StringBuffer();
//一个i表示被分割的数字i
backTrack(path,0,result,digits);
//这个也要带着
return result;
}
public void backTrack(StringBuffer path,int index,List<String> result,String digits){
if(path.length() == digits.length()){
//路径满足了就返回了
result.add(path.toString());
return;
}
//字母表这里出现了选择的问题
String letter = map.get(digits.charAt(index));//拿到字母表
for(int i = 0;i < letter.length();i++){
path.append(letter.charAt(i));//将字母表中数据放进路径
backTrack(path,index + 1,result,digits);
String newString = path.substring(0,path.length() - 1);
//这个方法行不通,相当于改变了整个path地址
path = new StringBuffer(newString);
}
}
}
String 和StringBuffer还有StringBuilder中一些介绍
如果不是对字符串经常改动,使用String就可以了。
如果经常对字符串的改动,就要用Buffer或者builder
buffer所有方法都用sy关键字修饰,所以是线程安全的,相当于加了个buffer,如果是·共享数据在多线程环境下运行必须要用buffer
builder的话,就简单很多了,为了建造就可以了效率比较高。
经常改动字符串的情况下,你肯定不可以使用String,String底层是final修饰的,是不可变的,所以很容易的一个问题,就是每次改动创造一个新的变量,然后浪费了空间,这是一个非常严重的问题。
String.valueOf
可以将一切转化为String