java - 如何多次检查特定事件?
问题描述
我是初学者。我的代码假设用户将输入一个带有“*”(星号)的单词,如果 * 前后的字符相同,则显示“相同”。例如,对于输入 ja'*'aisfun,我的输出应该是“相同的”,因为 * 介于相同的字母之间。我的代码似乎适用于大多数情况,例如几颗星,但是当我尝试像“ja” “a” “isfun”这样的用户输入时,输出是“相同的”,即使它应该显示“不同”,因为“a”和“我”是不同的字母。我想我的代码在这种情况下只能检查第一颗星。我该如何解决这个问题?(考虑没有撇号的星星)
String ind = "DIFFERENT";
for (int i = 0; i< s.length(); i++) {
if ((s.charAt(i) == '*') && (s.charAt(i-1)) == s.charAt(i+1))
ind = "SAME";
}
System.out.print(ind);
}
System.out.print("NO");
解决方案
您必须将循环从第 2 个字符限制到最后的第 2 个字符,并在找到匹配项时中断(我想):
String ind = "DIFFERENT";
for (int i = 1; i < s.length() - 1; i++) {
if ((s.charAt(i) == '*') && (s.charAt(i-1)) == s.charAt(i+1)) {
ind = "SAME";
break;
}
}
System.out.print(ind);
还掉:
System.out.print("NO");
推荐阅读
- spring-boot - 动态添加队列消费者春季问题
- ios - StoreKit 测试应用内购买 Xcode 12 beta 和 iOS 13 或更低版本
- multithreading - 机器上的线程数和 ThreadPool 线程数
- firebase - 在 Flutter 中使用 FirebaseAuth 检查用户的身份验证状态
- javascript - Node js 中的 response.on() 方法有什么作用
- java - 如何不允许用户突出显示 JTextArea 中的文本?但是我只能突出显示文本吗?
- android - 使用 Jetpack Benchmark 执行测试时的 INSTALL_FAILED_DUPLICATE_PERMISSION
- python - django.db.utils.OperationalError:没有这样的表:polls_post
- jakarta-ee - 如何测试使用@Resource 注入的数据源
- php - 无需编码即可添加 html