java - 将字母“a”的第一次出现与字母“o”的最后一次出现交换位置 Java
问题描述
任务是要求我从字符串中制作,例如“aaligatoor”,输出如下:“oaligatoar” 我找到了一个解决方案,例如:
public static String letterReplacement(final String word) {
String o = "o";
String a = "a";
if (word.contains("a") && word.contains("o")) {
return word.replaceFirst("a", "o")
.replaceFirst("(?s)(.*)" + 'o', "$1" + 'a');
} else {
return "Your word does not contain both of 'a' and 'o' letters, sorry...";
}
}
但这看起来很棘手,也许有人知道解决这个问题的更容易理解的方法?非常感谢您的帮助和关注。
解决方案
找到 "a" ( String.indexOf()
) 的第一个索引和 "o" ( String.lastIndexOf()
) 的最后一个索引。如果两个索引都 > -1 则交换字母
就像是:
public class StackOverflow {
public static void main(String[] args) {
String data = "aaligatoor";
int firstAindex = data.indexOf("a");
int lastOindex = data.lastIndexOf("o");
if (firstAindex > -1 && lastOindex > -1) {
char[] letters = data.toCharArray();
letters[firstAindex] = 'o';
letters[lastOindex] = 'a';
data = new String(letters);
}
System.out.println(data);
}
}
结果
oaligatoar
推荐阅读
- reactjs - 使用文件夹名称解析 Typescript 文件
- oracle - PLSQL 文本字符串中的与号作为 Tableau 的数据源
- python - 在 Python 中使用 seaborn 制作实心轮廓
- kubernetes - Kubernetes - API Server / etcd 如何知道每个 Pod 的状态?
- reactjs - redux-form 不适用于 gatsby.js 上的登录表单
- ios - 在iOS中的两个对齐标签中调整文本大小
- security - Symfony 4:无法访问管理员角色。拒绝访问
- django - 带有窗口函数的 Django ORM 子查询
- r - 转换为事务规则时出现错误“只能使用原子组件强制列表”
- javascript - 响应式粘性汉堡导航栏