问题描述
给定一个字符串s,编写一个函数,将字符串中的小写字母a替换为"%100",并返回替换后的字符串。
例如,对于字符串"abcdwa",所有a字符会被替换为"%100",最终结果为%100bcdw%100"。
测试样例
样例1:
输入:
s = "abcdwa"输出:'%100bcdw%100'
样例2:
输入:
s = "banana"输出:'b%100n%100n%100'
样例3:
输入:
s = "apple"输出:'%100pple'
算法思路
将输入转换为字符数组,遍历数组,将‘a’替换为‘%100’,其余非‘a’元素直接拼接即可
算法中的字符串操作
1. StringBuilder
StringBuilder 是 Java 中一个非常有用的类,它提供了一个可变的字符序列。这意味着你可以在不创建新对象的情况下修改 StringBuilder 实例中的字符序列。这在处理大量字符串拼接操作时特别有用,因为它可以提高性能并减少内存消耗。
StringBuilder的一些关键特性
StringBuilder 对象的内容可以在创建后被修改。
由于其可变性, StringBuilder 在进行大量字符串操作时比字符串更高效,因为字符串是不可变的,每次修改都会创建一个新的字符串对象。
2. toCharArray()
toCharArray() 是 Java 中 String 类的一个方法,它将字符串转换成一个字符数组。这个方法对于需要将字符串分解为单个字符进行操作的场景非常有用。toCharArray()方法会创建一个新的字符数组,并将调用该方法的字符串中的每个字符复制到这个数组中。字符串中的字符按照它们在字符串中的顺序被复制到数组中。
• toCharArray() 方法返回的是字符串的一个副本,所以对返回的数组进行修改不会影响原始字符串。
• 如果你需要对字符串中的字符进行迭代,但不需要修改它们,那么使用 for-each 循环可能更简单、更高效。
3. toString()
toString()方法在 Object 类中被定义,并被许多 Java 类继承。这个方法的主要目的是返回对象的字符串表示形式。
• 默认的 toString() 方法返回的字符串可能包含非打印字符,因此在重写时应该确保返回的字符串是有意义的,并且是人类可读的。
• 在重写 toString() 方法时,应该考虑到信息的敏感性,避免在字符串表示中包含敏感数据。
• toString() 方法通常应该返回一个不会抛出异常的非空字符串。
Solution
public class Main {
public static String solution(String s) {
// 创建一个 StringBuilder 来构建新的字符串
StringBuilder result = new StringBuilder();
// 遍历字符串中的每个字符
for (char c : s.toCharArray()) {
// 检查当前字符是否为小写字母 'a'
if (c == 'a') {
// 如果是 'a',则将其替换为 "%100"
result.append("%100");
} else {
// 否则,保持原字符不变
result.append(c);
}
}
// 将 StringBuilder 转换为 String 并返回
return result.toString();
}
public static void main(String[] args) {
System.out.println(solution("abcdwa").equals("%100bcdw%100"));
System.out.println(solution("banana").equals("b%100n%100n%100"));
System.out.println(solution("apple").equals("%100pple"));
}
}