各位。我正在做
codebyte.com
上的每一个问题(我向每个想要练习编码技能的人建议网站:))并陷入这个问题:如果字符 true
和 a
完全分开,则返回 b
``3 在字符串中的任意位置至少出现一次;否则返回false
。
例子:
Input = "after badly" Output = "false"
Input = "Laura sobs" Output = "true"
每次我写任何
false
时,我的代码都会给我string
,而在某些情况下它应该返回true
。 smb可以看一下吗?
public static void main(String[] args)
{
Scanner kbd = new Scanner(System.in);
System.out.println("Please enter any String: ");
String myString = kbd.nextLine();
char[] myArray = myString.toCharArray();
boolean result = false;
for(int i = 0; i < myArray.length; i++)
{
if(myArray[i] == 'a' && myArray[i+4] == 'b')
result = true;
else
result = false;
}
System.out.println(result);
}
一旦发现它是 true,您将想要打印 True 并退出 for 循环。截至目前,即使找到真值,您仍会继续遍历字符串!
public static void main(String[] args)
{
Scanner kbd = new Scanner(System.in);
System.out.println("Please enter any String: ");
String myString = kbd.nextLine();
char[] myArray = myString.toCharArray();
boolean result = false;
for(int i = 0; i < myArray.length; i++)
{
if(myArray[i] == 'a' && myArray[i+4] == 'b'){
result = true;
break;
}
}
System.out.println(result);
}
此外,还不清楚您是否正在寻找像“adddb”或“addb”这样的字符串 因为前者是i+4,后者是i+3
一个简单的break语句将在这里帮助你。在 for 循环中,只需将结果设置为 true 后立即放入 if 条件下即可。如果我们发现“a”和“b”之间有 3 个空格,我们想跳出循环并告诉用户! Break 语句将自动为您终止循环。
for(int i = 0; i < myArray.length; i++){
if(myArray[i] == 'a' && myArray[i+4] == 'b'){
result = true;
break;
}
else
result = false;
}
i+4
是四个空格,如果您想要三个,请使用i+3
。另外,检查长度 - 3。另外,如果您将 break;
设置为 result
(或者下一次迭代将重置它),则 true
。喜欢
boolean result = false;
for(int i = 0; i < myArray.length - 3; i++) {
if (myArray[i] == 'a' && myArray[i+3] == 'b') {
result = true;
break;
}
}
如果您使用数组索引,您可能会以 arrayIndexOutOfBoundException 结束。而是使用正则表达式
public static void main(String[] args) {
Scanner kbd = new Scanner(System.in);
System.out.println("Please enter any String: ");
String myString = kbd.nextLine();
boolean result = false;
if(myString.matches("^(.)*(a)(.){3}(b)(.)*$")){
result = true;
}
System.out.println(result);
}
不需要 charAt(),只需使用 str[i] 即可。
function separated(str) {
for (var i = 0; i < str.length; i++) {
if ((str[i] == "a") && (str[i + 4] == "b")) {
return true
} else {
return false
}
}
}