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.
从一个循环,我将得到的价值l.想象这个值是3.因此我想要一个字符串重复3次.这意味着我想要执行字符串*l,但这是不可能的,因为一个是字符串,一个是int.我确实需要字符串重复l次数.
例如,如果输入的字符串是"cat"并且l结果为3,我将得到输出"catcatcat".谢谢
这是我的编码:
import java.util.Scanner;
public class Task2 {
public static void main (String[] args){
Scanner kb=new Scanner(System.in);
System.out.println("Please give me a message:");
String strMessage = ("^[?=.*!@#$%^&*]+$");
strMessage=kb.nextLine();
System.out.println("Thank you! Now please give me a keyword:");
String strKeyword=kb.nextLine();
String strAlphabet= "abcdefghijklmnopqrstuvwxyz";
double Intlength2 = strKeyword.length();
double Intlength = strMessage.length();
double Intlength3 = Intlength/Intlength2;
Intlength3 = Intlength/Intlength2;
for (int l=0; l<Intlength3; l++){
Run Code Online (Sandbox Code Playgroud)