java - 如何在字符串中找到第一组不包含重复字符的字符
问题描述
我已经在下面的代码中尝试过,但它只有在只有一个字符集并且字符集出现在字符串中间时才有效。如果该集合多次出现并出现在字符串的末尾或开头,则结果为 false。
String str = "aaabbccdddefghjjkklmn";
for(int i = 1; i < str.length() - 1; i++){
if (str.charAt(i) != str.charAt(i+1) && str.charAt(i) != str.charAt(i-1)){
System.out.print(str.charAt(i));
}
}
使用上面的字符串,结果应该只是“efgh”,但上面的代码显示“efghlm”
解决方案
你的方法是正确的。只是在找到第一组非重复字符之后,一旦找到重复字符就需要中断循环。
下面的代码段是您的代码的 JavaScript 等价物
var str = "aaabbccdddefghjjkklmn";
var result = "";
for(var i = 1; i < str.length - 1; i++){
// Find for non-repeating character
if (str.charAt(i) != str.charAt(i+1) && str.charAt(i) != str.charAt(i-1)){
result += str.charAt(i)
}
else {
// Repeating character found
// exit loop if non-repeating character already
// found
if (result.length > 0) {
break;
}
}
}
console.log(result);
推荐阅读
- javascript - 为什么异步 AJAX 会阻止 firefox 上的文档就绪事件?
- r - 为绘制广义指数分布的风险函数添加图例
- node.js - 条纹 Webhook:E_WEBHOOK_REQUEST_ERROR
- vba - 转到每行的末尾和括号内的粗体文本
- python - 当在Python中使用正则表达式之间有单词时,如何提取特定关键字之后的下一行?
- asp.net-mvc - ASP .NET Core - 发回一个填充模型
- javascript - 如何使用 jquery 从选择选项列表视图中将单个信息传递到特定输入字段
- qt - Qt Designer 上的禁用布局选项
- javascript - 向下滚动时如何垂直缩小导航栏?
- c# - 刚体组件.速度.y = 0 显然会导致错误(制作乒乓球)