1.如何定义一个字符串:
下面两种方法都可以:
String string=new String("HelloWorld");
String string="HelloWorld";
2.string.charAt(i)取出字符串中某个字符
String string="HelloWorld";
System.out.println(string.charAt(4));
//得到o
3.字符数组转字符串
char[] array=new char[5];
array[0]='g';
array[1]='o';
array[2]='o';
array[3]='d';
array[4]='!';
String result=new String(array,0,array.length);
System.out.println(result);
//输出:good!
4.StringBuilder转字符串String
StringBuildr.toString();
注意:StringBuilder有reverse方法,反转字符串,String没有这个反转方法
5.字符串转化为字符数组
char[] array=string.toCharArray();
6.字符串截取子串string.substring() :前闭后开
String s=“Hello,World!”; String s2=s.substring(1,5) //"ello,"
7.判断两个字符串是否相等
s1.equals(s2)
8.split分割方法:最后得到的是一个字符串数组,也就是数组中每一个元素都是字符串
例题
(1)力扣替换空格
class Solution
{
public String replaceSpace(String s)
{
//定义一个数组,这个数组长度是字符串长度的三倍
//因为一个空格换成%20三个字符,所以三倍长度才能完全容纳字符串
char[] array = new char[s.length() * 3];
int size = 0;//size是我们定义的数组中的下标
//用i来取出字符串中每一个字符
for (int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
if (c == ' ')
{
array[size] = '%';
size++;
array[size] = '2';
size++;
array[size] = '0';
size++;
}
else
{
array[size] = c;
size++;
}
}
String result = new String(array, 0, size);
return result;
}
}
(2)左旋转字符串
力扣剑指offer58
k就是说把前k个字符放到字符串最后面去
比如这里k=2,就是说把前面两个字符放到字符串最后面去
方法一:利用substring方法截取字符串子串的方法,将字符串先变成两个字符串,第一个字符串str1是前k个字符组成的,第二个字符串str2是由剩下的字符组成的,然后两个字符串进行拼接,而且是str2放在前面,str1放在后面,也就是说str2+str1
class Solution
{
public String reverseLeftWords(String s, int n)
{
//substring是前闭后开
String s1=s.substring(0, n);
String s2=s.substring(n, s.length());
return s2+s1;
}
}
方法二:
class Solution
{
public String reverseLeftWords(String s, int n)
{
StringBuilder result = new StringBuilder();
//先把后面的字符添加进StringBuilder里面
for(int i = n; i < s.length(); i++)
{
result.append(s.charAt(i));
}
//再把前面的字符添加进StringBuilder里面
1 for(int i = 0; i < n; i++)
{
result.append(s.charAt(i));
}
//将StringBuilder转化为String字符串
return result.toString();
}
}
方法三:
class Solution
{
public String reverseLeftWords(String s, int n)
{
String result = "";
for(int i = n; i < s.length(); i++)
{
result += s.charAt(i);
}
for(int i = 0; i < n; i++)
{
result += s.charAt(i);
}
return result;
}
}
(3)实现strStr()
力扣28 :找出一个字符串在另一个字符串中出现的位置
class Solution
{
//求出s2在s1中出现的位置
public int strStr(String s1, String s2)
{
if(s2.equals(""))
{
return 0;
}
if(s1.length()c1.length-c2.length) return -1;
int temp=i;
for(int j=0;j
(4)最长公共前缀
力扣14
将第一个字符串作为基准,其他所有的字符串和它一起比较
class Solution
{
public String longestCommonPrefix(String[] strs)
{
//遍历str[0]这个字符串的每一个字符
for(int i=0;i
(5)力扣557 反转字符串中的单词|||
class Solution
{
public String reverseWords(String s)
{
//得到一个字符串数组
String[] array=s.split(" ");
StringBuilder result=new StringBuilder();
//遍历字符串数组里的每一个字符串
for(int i=0;i=0;j--)
{
result.append(array[i].charAt(j));
}
//每翻转完一个字符串就添加一个空格
if(i!=array.length-1)
{
result.append(" ");
}
}
return result.toString();
}
}



