第三天——字符串
第一题——剑指 Offer 05. 替换空格
题目描述
思路
新new一个字符串为空,然后遍历字符串s如果遇到空格便替换成%20,未遇到就直接加到字符串的后面,依次遍历最后一个。
代码
class Solution {
public String replaceSpace(String s) {
if(s == null) return null;
StringBuilder s1 = new StringBuilder();
for(Character c : s.toCharArray()){
if(c==' ') s1.append("%20");
else s1.append(c);
}
return s1.toString();
}
}
疑难点
Character
toString()
toCharArray()
String、StringBuffer和StringBuilder的区别
另外一种思路
思路
利用库函数直接替换。
代码
class Solution {
public String replaceSpace(String s) {
return s.replace(" ","%20");
}
}
第二题——剑指 Offer 58 - II. 左旋转字符串
题目描述
思路
新new一个字符串,将原始字符串的n到最后一个存入新字符串中,然后将0到n的值加在新字符串的后面,然后直接返回新生成的字符串。
代码
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuilder str = new StringBuilder();
for(int i=n;i<s.length();i++){
char c = s.charAt(i);
str.append(c);
}
for(int i=0;i<n;i++){
char c = s.charAt(i);
str.append(c);
}
return str.toString();
}
}
第二种
class Solution {
public String reverseLeftWords(String s, int n) {
return s.substring(n,s.length()) + s.substring(0,n);
}
}