我正在寻找有问题的帮助。在学习了大量的C ++之后,我们刚开始在课程中学习简单的java。
我们的一项奖励任务是为那些了解代码而不是课堂教学的人。
任务如下:通过名称lettersSeries编写一个函数,该函数从用户输入字母(一次一个字母,假设所有字母都是小写)。一旦用户输入了3个连续的字母,该功能就停止接受来自用户的信件。 (仅适用于没有while循环的循环)
示例:a - > b - > a - > c - > d - > e(这是停止)
到目前为止,我不太了解,如果有人能帮助我,我会很高兴...我尝试了一些选项,但我不知道如何追踪字母表,特别是如何检查字母是否连续...
谢谢!
public static void letterSeries() {
//We create a scanner for the input
Scanner letters = new Scanner(System.in);
for(Here I need the for loop to continue the letters input) {
//Here I need to know if to use a String or a Char...
String/Char letter = next.<//Char or String>();
if(Here should be the if statement to check if letters are consecutive) {
/*
Here should be
the rest of the code
I need help with
*/
显然,你可以改变代码,而不是制作我的模式,我会以更简单的方式更快乐!
答案 0 :(得分:0)
你可以使用字符&#39;用于检查字母是否连续的Unicode编号:如果a和b是您的字母,请尝试检查b - a == 1.如果结果性是以不区分大小写的方式(&#39; B&#39;连续到& #39; a&#39;然后检查:(b - a == 1 || b - a == 33)。
答案 1 :(得分:0)
在这里我将如何解决这个问题,我会让你填补空白,但我不会为你完成所有的功课。
private void letterSeries() {
Scanner scanner = new Scanner(System.in);
char prevChar;
char currChar;
int amountOfConsecutives = 0;
final int AMOUNT_OF_CONSECUTIVES = 2;
for(;;) {
// Take in the users input and store it in currChar
// Check if (prev + 1) == currChar
// If true, amountOfConsecutives++
// If false, amountOfConsecutives = 0;
// If amountOfConsecutives == AMOUNT_OF_CONSECUTIVES
// Break out of the loop
}
}
答案 2 :(得分:0)
private void letterSeries() {
Scanner letters = new Scanner(System.in);
String last = "";
int counter = 0;
for (;counter < 2;){
if ( last.equals (last=letters.next())) counter ++;
else counter = 0
}
}
答案 3 :(得分:0)
Scanner letters = new Scanner(System.in);
char previousChar = '\0';
int consecutive = 1;
for(; consecutive != 3 ;){
char userInput= letters.findWithinHorizon(".", 0).charAt(0);
if (userInput - previousChar == 1){
consecutive++;
} else {
consecutive = 1;
}
previousChar = userInput;
}
我对这个解决方案作了一点欺骗。我使用只有中间部分的for循环,所以它就像一个while循环。
无论如何,这是它的工作原理。
前三行为用户输入创建扫描程序,consecutive
变量计算用户输入的连续字母数,以及previousChar
来存储前一个字符。
“为什么consecutive
从1开始?”你可能会问。好吧,如果用户输入一个字母,它将自己连续。
在for循环中,只要consecutive != 3
,代码就会运行。循环中的第一行我们使用findWithinHorizon(".", 0).charAt(0)
读取一个字符。然后if语句检查它是否是带有前一个字符的连续字母。如果是,请在consecutive
中添加一个,如果不是,请将consecutive
重置为一个。最后,我们将previousChar
设置为userInput
以准备下一次迭代。