String
// 1. 基本操作
charAt(),substring()
ch = st.toCharArray(); // 字符串转换为字符数组.
// 2. 比较
if(!this.name.equals(s1.name)){
return this.name.compareTo(s1.name);
}
// 3.StringBuilder比较
s1.toString().equals(s2.toString())
-
替换/循环移动
- 使用 charAt(index)和 subSrting(index)(index 和后直到字符串结尾的整个子串)循环移动子串
-
split
- String[] line = str.split(“ ”) //以空格划分
- Sting s =line[1].split(“\\.”) // 以.划分
-
子串后缀链接
-
String temp =""; // 从后往前遍历 sting for(int i=domains.leng-1;i>=0;i--) { // 保证子串不断增长 temp = domains[i] + (temp.equals("")?temp:"."+temp); }
-
-
遍历中使用subString获得后续子串
-
for (String cd : cpdomains) { // ues indexOf 确定''划分的位置下标 int i = cd.indexOf(' '); // ues subString 获得空格前的数值 Integer.valueOf 转化 int n = Integer.valueOf(cd.substring(0, i)); String s = cd.substring(i + 1); for (i = 0; i < s.length(); ++i) { if (s.charAt(i) == '.') { // 获得'.'划分的子缀 正向遍历不丢失后续信息 String d = s.substring(i + 1); count.put(d, count.getOrDefault(d, 0) + n); } }
-
-
筛选:
- LC811
Tips
替换字符
思路
-
使用
HashSet
保存替换的字典集 Arrays.asList(‘...’)作为参数 保存为 private static final 类型private static final HashSet<Character> vowels = new HashSet<>( Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'));
-
使用
s.split(“ ”)
删除空格字符 -
使用
StringBuilder
作为append的新字符串 最后 toString返回
Codes
private static final HashSet<Character> vowels = new HashSet<>(
Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'));
public String toGoatLatin(String S) {
if (S == null || S.length() == 0) {
return "";
}
StringBuilder sb = new StringBuilder();
StringBuilder suffix = new StringBuilder("a");
for (String w : S.split(" ")) {
// 保证前导“ ”在非第一个字符前出现
if (sb.length() != 0) {
sb.append(" ");
}
// 暂存 w 的首字符 判断是否是元音
char fChar = w.charAt(0);
if (vowels.contains(fChar)) {
sb.append(w);
} else {
// 使用 subString 链接除首字符外的字符串
sb.append(w.substring(1));
// 再将暂存的首字符追加
sb.append(fChar);
}
// 连续追加
sb.append("ma").append(suffix);
// 保证后缀a 随字符的下标增加
suffix.append("a");
}
// System.out.println("sb.toString() = " + sb.toString());
return sb.toString();
}
sb
-
连续追加
Sb.append(“aa”).append(“string”)
-
构建二维 string
-
StringBuffer[] sb = new StringBuffer[len]; for (int i = 0; i < sb.length; i++) sb[i] = new StringBuffer();
-