sup*_*tar 2 java eclipse for-loop nested-loops
for (int i=0; i<Intlength; i++){
int intPosition;
intPosition=strAlphabet.indexOf(strMessage.charAt(i));
System.out.println(intPosition);
System.out.println("BREAK");
for (int k=0; k<Intlength2; k++){
int intPosition2;
intPosition2=strAlphabet.indexOf(strKeyword.charAt(k));
System.out.println(intPosition2);
System.out.println("BREAK-------------");
}
}
Run Code Online (Sandbox Code Playgroud)
我会要求用户输入两个单词.一个是消息,一个是关键字.
上面的第一个循环将检查是否我将添加1,并打印出第一个字母位置编号.例如,如果消息是"红色".我首先想要它输出位置编号"r",即17.然后它继续移动到第二个循环,并对关键字执行完全相同的操作.例如,如果关键字是"cat",我希望它打印第一个字母的第一个字母位置,在这种情况下,"c"的位置值为2.这样我希望输出如下:
消息的第一个字母位置
关键字的第一个字母位置
消息的第二个字母位置
关键字的第二个字母位置
等等
因此坚持消息"红色"和关键字"猫"我想要输出如下:
17
2
4
0
3
19
Run Code Online (Sandbox Code Playgroud)
我已经添加了中断文本来区分我的编码发生了什么,这就是结果.
Please give me a message:
red
Thank you! Now please give me a keyword:
cat
17
BREAK
2
BREAK-------------
0
BREAK-------------
19
BREAK-------------
4
BREAK
2
BREAK-------------
0
BREAK-------------
19
BREAK-------------
3
BREAK
2
BREAK-------------
0
BREAK-------------
19
BREAK-------------
Run Code Online (Sandbox Code Playgroud)
你可以看到它输出了消息的第一个字母位置,然后是关键字的所有三个位置,然后进入消息的第二个位置字母,然后再次输出关键字的所有三个位置值.我如何解决这个问题以获得我想要的输出,我确信我没有正确地编写forloop.
你得到的是嵌套for循环使它做你建议他们只需要一个接一个,而不是互相嵌套.当您将第二个for循环放在第一个循环内部时,您要告诉它要在消息中的每个字母的关键字中打印每个字母.
你想要的是这样的循环(如果一个字符串比另一个字符串长,我不清楚你想要它做什么,我假设你希望它用较短的字符串停止,但你可以改变它.)
if(strMessage.length > keyword.length){
intLength = keyword.length;
} else {
intLength = strMessage.length;
}
for (int i=0; i<intLength; i++){
//Print the position of the i'th letter of the message
int intPosition;
intPosition=strAlphabet.indexOf(strMessage.charAt(i));
System.out.println(intPosition);
//Print the position of the i'th letter of the keyword
int intPosition2;
intPosition2=strAlphabet.indexOf(strKeyword.charAt(i));
System.out.println(intPosition2);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
182 次 |
| 最近记录: |