1.字符串详解(Java)
在java中,字符串String属于对象,可以使用两种方式创建:
String s1="hhh";//直接创建
String s2=new String("hhh");//对象创建
String s3=s2;//引用
s.length();
s.charAt(i);
s.equals(s1);
s.repalce(c1,c2);
s.repalceAll(s1,s2);
s.isEmpty();
s.split(s1);//正则式
s.contains(c);
2. 剑指offer05:替换空格
1.题目描述
2.题目解析
1.使用replace函数;
代码如下:
class Solution {
public String replaceSpace(String s) {
String res=s.replace(" ","%20");
return res;
}
}
2.遍历比较;
代码如下:
class Solution {
public String replaceSpace(String s) {
StringBuffer res=new StringBuffer();
for(int i=0;i<s.length();i++)
{
if(s.charAt(i)==' ')
res.append("%20");
else
res.append(s.charAt(i));
}
return res.toString();
}
}
3.剑指offer58-II:左旋转字符串
1.题目描述
2.题目解析
我的思路:
首先我想的是遍历,使用StringBuffer存储即可,然后写了如下代码:
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuffer s1=new StringBuffer();
StringBuffer s2=new StringBuffer();
for(int i=0;i<n;i++)
{
s1.append(s.charAt(i));
}
for(int i=n;i<s.length();i++)
{
s2.append(s.charAt(i));
}
s2.append(s1);
return s2.toString();
}
}
看了题解才发现可以节省一下空间,只拿一个buffer存储即可,于是:
public String reverseLeftWords(String s, int n) {
StringBuffer s1=new StringBuffer();
for(int i=n;i<s.length();i++)
{
s1.append(s.charAt(i));
}
for(int i=0;i<n;i++)
{
s1.append(s.charAt(i));
}
return s1.toString();
}
没想到反而更拉了。。。
大佬思路:
字符串切片” :
class Solution {
public String reverseLeftWords(String s, int n) {
return s.substring(n, s.length()) + s.substring(0, n);
}
}
作者:jyd
链接:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/solution/mian-shi-ti-58-ii-zuo-xuan-zhuan-zi-fu-chuan-qie-p/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
“列表遍历拼接” :
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuilder res = new StringBuilder();
for(int i = n; i < s.length(); i++)
res.append(s.charAt(i));
for(int i = 0; i < n; i++)
res.append(s.charAt(i));
return res.toString();
}
}
“字符串遍历拼接”:
class Solution {
public String reverseLeftWords(String s, int n) {
String res = "";
for(int i = n; i < s.length(); i++)
res += s.charAt(i);
for(int i = 0; i < n; i++)
res += s.charAt(i);
return res;
}
}