我正在编写这个程序,我需要验证字符串中的每个奇数索引是否都有字母“X”。例如,如果我的字符串是:AXFXTX,那么我应该收到一条消息:“GOOD”,如果不是,我应该收到一条消息:“BAD”。任何人都可以告诉我我错过了什么。先谢谢你。
这是我的代码
import java.util.Random;
import java.util.Scanner;
public class Program {
public static void main(String[] args) {
Random rand = new Random();
Scanner scan = new Scanner(System.in);
int min = 1;
int max = 10;
int randomNum = rand.nextInt((max - min) + 1) + min;
System.out.println("Random number = " + randomNum);
System.out.print("Enter a word of " + randomNum + " characters:");
String myString = scan.nextLine();
while(myString.length() != randomNum){
System.out.print("Enter a word of " + randomNum + " characters:");
myString = scan.nextLine();
}
char[] c = myString.toCharArray();
for(int i = 0 ; i < c.length ; i++){
if(c[i] == 'X'){
System.out.println("GOOD!");
}
else{
System.out.println("BAD");
}
}
}
}
答案 0 :(得分:5)
如果我理解你的问题,那么重要的是要注意第一个奇数索引是1
。因此,您可以从3
开始,检查是否与第一个奇偶数(index += 2
)相同。像,
boolean sameLetter = true;
for (int index = 3; index < c.length && sameLetter; index += 2) {
sameLetter = (c[1] == c[index]);
}
System.out.println(sameLetter ? "GOOD!" : "BAD");
答案 1 :(得分:4)
仅仅评估奇数指数:
char[] c = myString.toCharArray();
boolean good = true;
for(int i = 3 ; i < c.length ; i+=2){
if(c[i] != c[i-2]){
good = false;
break;
}
}
if(good) System.out.println("GOOD");
else System.out.println("BAD");
答案 2 :(得分:2)
尝试
booelan allGood = true;
for(int i = 2 ; i < c.length ; i = i + 2){
if(c[i] != c[0]){
allGood = false;
break;
}
}
答案 3 :(得分:2)
我只想在这里使用正则表达式
str.matches(".(\\w)(.\\1)+")
//真是好
答案 4 :(得分:1)
首先,您需要一个布尔变量来跟踪它是否在所有字符中保持一致。其次,你需要改善你的循环
boolean testSucceed = true;
for(int i = 1 ; i < c.length ; i += 2){
if (c[i] != 'X') testSucceed = false;
break;
}
if(testSucceed){
System.out.println("GOOD!");
} else{
System.out.println("BAD");
}
答案 5 :(得分:1)
将for循环更改为: for(int i = 0; i&lt; c.length; i + = 2) 所以它会超越替代角色。
答案 6 :(得分:-2)
//如果不能被2整除则仅检查ODD编号 编辑:你被假设使用模数%而不是除法%。我的错 for(int i = 0; i&lt; c.length; i ++){ if(c [i]%2!= 0){ if(c [i] ==&#39; X&#39;){ 的System.out.println(&#34;好!&#34;); } 其他{ 的System.out.println(&#34; BAD&#34); } } }