1.把字符串转换成整数
public class Solution{
public int StrToInt(String str){
if(str==null||str.length()==0) return 0;
int mark=0;
int number=0;
if(str.charAt(0)=='-') mark=1;
for(int i=mark;i<str.length();i++){
if(str.charAt(i)=='+'){
continue;
}
if(str.charAt(i)<48||str.charAt(i)>57){
return 0;
}
number=number*10+str.charAt(i)-48;
}
return mark=0?number:-number;
}
}
思路:一般把字符串转换成整数,用ASCII,0 为48,9为57
1.如果字符串为空,长度为0,返回0;
2.定义mark=0,number=0;
3.如果数字的0索引处为-,则返回 mark=1;
4.遍历字符串,第一种情况:如果0索引处为+,则继续遍历
5.第二种情况:字符串的数字都是0-9的范围内,否则返回0
6.mark=0就输出当前的数;mark=-1就输出负数;
ASCII转换成数字的公式:number=number*10+str.charAt(i)-48;
2.替换空格
import java.util.*;
public class Solution{
public String replaceSpace(){
if(s==null||s.length()==0) return s;
return s.replaceAll(" ","%20");
}
}
思路:
1.如果字符串为空或者字符串的长度为0,则返回字符串.
2.用replaceAll方法,将空格替换成%20.
3.字符串排列
import java.util.ArrayList;
public class Solution{
public ArrayList<String> Permutation(String str){
ArrayList<String> result=new ArrayList<>();
if(str==null||str.length()==0){
return result;
}
recur(str,"",result);
return result;
}
public void recur(String str,String cur,ArrayList<String> result){
if(str.length()==0){
if(!result.contains(cur)){
result.add(cur);
}
}
for(int i=0;i<str.length();i++){
recur(str.substring(0,i)+str.substring(i+1,str.length()),cur+str.charAt(i),result);
}
}
}
思路:
1.创建一个list集合,用来存放String类型数据
2.如果字符串为空或者长度为0,则返回结果。
3.调用recur方法,将结果存入list集合中。
4.编写recur方法,将原来的字符串、排序好的字符串、和存入集合的字符串都传入。
5.如果字符串的长度为0,list集合中不包含cur,就将排序好的字符串添加进list集合中。
6.遍历字符串,将结果的字符串排序好。