一、[344]反转字符串
class Solution {
public void reverseString(char[] s) {
int left=0,right=s.length-1;
while(left<right){
char tmp=s[left];
s[left]=s[right];
s[right]=tmp;
left++;
right--;
}
}
}
二、[541]反转字符串II
重点:
1、字符数组转String 一般 new String(ch);
Arrays.toString(ch); 将数组转换成String类型输出的
输出示例:
[b,a,c,d,f,e,g]
会出现错误
class Solution {
public String reverseStr(String s, int k) {
char[] ch = s.toCharArray();
for(int i=0;i< ch.length;i=i+2*k){
int start=i;
int end = Math.min(ch.length - 1, k - 1 + start);
while(start<end){
char tmp=ch[start];
ch[start]=ch[end];
ch[end]=tmp;
start++;
end--;
}
}
//将数组转换成String类型输出的
//Arrays.toString(ch);
//[b,a,c,d,f,e,g]
return new String(ch);
}
}
三、[卡码网54]替换数字
重点:String 不可变
转为字符数组
或者用StringBuffer 、StringBuilder
import java.util.*;
//类名必须为Main
public class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
String res = replaceDigits(s);
System.out.println(res);
scanner.close();
}
public static String replaceDigits(String s) {
char[] ch = s.toCharArray();
int count=0;
for(int i=0;i<s.length();i++){
if(Character.isDigit(ch[i])){
count++;
}
}
int newLength=s.length()+5*count;
char[] newCh=new char[newLength];
for(int i=0;i<s.length();i++){
newCh[i]=ch[i];
}
int j=newLength-1;
for(int i=s.length()-1;i>=0;i--){
if(!Character.isDigit(newCh[i])){
newCh[j]=newCh[i];
j--;
}else{
//number
newCh[j--]='r';
newCh[j--]='e';
newCh[j--]='b';
newCh[j--]='m';
newCh[j--]='u';
newCh[j--]='n';
}
}
return new String(newCh);
}
}