替换空格
问题:请编写一个方法,将字符串中的空格全部替换为“%20”.假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。
给定一个string iniString为原始的串,以及串的长度 int len ,返回替换后的string.
public class Main{
public static void main(String[] args) {
String A = "how are you";
System.out.println(A.replaceAll("\\s","%20"));
}
旋转词
问题:如果对于一个字符串A,将A的前面任意一部分挪到后边去形成的字符串称为A的旋转词。比如A=“12345”,A的旋转词有"12345",“23451”,“34512”,“45123"和"51234”。对于两个字符串A和B,请判断A和B是否互为旋转词。
给定两个字符串A和B及他们的长度lena,lenb,请返回一个bool值,代表他们是否互为旋转词。
public class Main{
public static void main(String[] args) {
String A = "12345";
String B = "23451";
System.out.println(solve(A,B));
}
public static boolean solve(String A,String B){
if(A.length() != B.length()) return false;
StringBuilder sn = new StringBuilder();
sn.append(1);
sn.append(2);
sn.append(3);
sn.append(4);
sn.append(5);
for(int i=0;i<A.length();i++){
sn.append(sn.charAt(i));
if(B.equals(sn.substring(i+1,sn.length()).toString())) return true;
}
return false;
}
}
翻转单词
问题:把student a am I变成 I am a student;注意这和翻转字符串不同,翻转字符串是将 student a am I 翻转为 I ma a tneduts.
思路:将整个字符串翻转,然后再将每个单词翻转。
public class Main{
//翻转功能
public static String solve(String A){
StringBuilder sn = new StringBuilder(A);
String str = sn.reverse().toString();
return str;
}
public static void main(String[] args) {
String A = "student a am I";
String str = solve(A);
String [] words = str.split("\\s"); //按照空格分割
StringBuilder sb = new StringBuilder();
for(int i =0;i<words.length;i++){
sb.append(solve(words[i])+' ');
}
sb.deleteCharAt(sb.length()-1);
System.out.println(sb);
}
}
去掉连续出现k次的0
问题:给定一个字符串,去掉字符串中连续出现k次的0;例如:100001 K=3;得到101。
public class Main{
public static void main(String[] args) {
String A = "110000";
int k = 3;
System.out.println(solve(A,k));
}
public static String solve(String A,int k){
int flag=0;
for(int i=0;i<A.length();i++){
if(A.charAt(i) == '0'){
flag = i;
break;
}
}
String s = A.substring(0,flag) + A.substring(flag+k);
return s;
}
}
本文深入探讨了多种字符串操作方法,包括空格替换、旋转词判断、单词翻转及连续字符删除等,提供了具体实现代码,适合编程初学者和进阶者学习。

被折叠的 条评论
为什么被折叠?



