這個程序運行完美,除了當我在輸入中使用questiom火星時:這是什麼?爲什麼它不讀取問號?
它應該對一個字符串中的重複項進行計數,並打印出連續重複次數的最高次數。任何其他字符都可以(#,* ...),但在這種情況下,它會返回數字:1.由於有6個問號,哪個錯誤。這就是爲什麼我懷疑nextLine()函數和「?」之間有什麼問題或者Char類和「?」。但我無法在任何地方找到答案。
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
Scanner scan = new Scanner(System.in);
String kell = scan.nextLine();
char [] sor = kell.toCharArray();
int max = kell.length();
scan.close();
int rész = 1;
int vég = 1;
boolean egyezett = false;
for(int i=0; i<max-1; i++)
{
if (sor[i]== sor[i+1]){
rész++;
egyezett = true;
}else{
if (egyezett){
if (rész>vég){
vég= rész;
egyezett = false;
rész = 1;
} else{
egyezett = false;
rész = 1;
}
}
}
}
System.out.println(vég);
}
}
您能否將您的變量名稱翻譯成英文。這很難閱讀。 – litelite
如果你只有一種重複的字符(_?_在你的情況下),那麼'vég'永遠不會更新。您需要在循環之後執行在另一個循環中執行的檢查,以確保更新「vég」。使用調試器逐步執行代碼時,很容易發現這樣的錯誤。 OMG! – litelite