我需要在1和0的字符串中打印元素的索引,當且僅當1和0並排重複多次。如何比較單個字符串中的元素?
例如: 輸入: 「0010011」 輸出: 「0,3,5」
甲重複開始於索引0,3和5
這裏是我現在有
Scanner keyboard = new Scanner(System.in);
ArrayList runs = new ArrayList();
System.out.println("Enter non empty string of 1s and 0s");
String input = keyboard.nextLine();
char[] array = input.toCharArray();
for(int i = 0; i < input.length(); i++)
{
if(array[i] == array[i++])
{
runs.add(i);
}
}
for(int i = 0; i<= array.length; i++)
{
System.out.println(runs);
}
當我測試這個,我嘗試輸入「00100」並得到「1,3,5」的輸出。來自「0010011」以上的另一個測試輸入並獲得「1,3,5,7」。它似乎在打印奇數,而不是數字開始重複的索引。任何人都可以發現我做錯了什麼嗎?我有一種感覺,它來自我在第一次循環中的比較。
提示:您如何看待'我++'不會(在'陣列[I ++]')? –
@ZouZou我的印象是,它獲得了我目前所在的前面的下一個元素。 – Reeggiie
@ user3345200不,不幸的不是。 'i ++'返回'i'的值,並在返回後遞增它。 (「後增」) – exception1