問題:私はJavaで遊んでいて、文字列内で連続した '文字'を数えようとしています。Java文字列:連続する文字または数字を確認する
例:
Scanner in = new Scanner(System.in);
int n = in.nextInt();
String binaryString = Integer.toBinaryString(n);
上記のコードが入力された整数値のバイナリ文字列を返します。数字5を入力すると、これが返されます:101
これで、Stringをループし、String内に連続する1があるかどうかを確認します。
for (int i = 0; i < binaryString.lenth(); i++)
{
// code comes here...
}
これを確認する方法がわかりません。私は、次のことを試してみました:
for (int i = 0; i < binaryString.length(); i++)
{
char charAtPos = binaryString.charAt(i);
char charAtNextPos = binaryString.charAt(i+1);
if (charAtPos == '1')
{
if (charAtPos == charAtNextPos)
{
consecutive += 1;
}
}
}
しかしi+1
は、配列の長さよりも大きな数を生成しますので、これは明らかにArrayIndexOutOfBoundsをスローします。
ご回答いただきありがとうございます。
オーウェン
では、binaryString.length() - 1はどのようにcondidtionにありますか? :) – kolboc