在这个程序中,我需要验证字符串中的每一个奇数索引是否都有字母"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");
}
}
}
}发布于 2016-03-03 03:56:44
只需评估奇数指数:
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");发布于 2016-03-03 03:58:38
如果我理解您的问题,那么重要的是要注意,第一个奇数索引是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");发布于 2016-03-03 03:56:15
试一试
booelan allGood = true;
for(int i = 2 ; i < c.length ; i = i + 2){
if(c[i] != c[0]){
allGood = false;
break;
}
} https://stackoverflow.com/questions/35762865
复制相似问题