34 lines
1.0 KiB
Java
34 lines
1.0 KiB
Java
public final class SetRightAdjacentBits {
|
|
|
|
public static void main(String[] aArgs) {
|
|
setRightAdjacent("1000", 2);
|
|
setRightAdjacent("0100", 2);
|
|
setRightAdjacent("0010", 2);
|
|
setRightAdjacent("0000", 2);
|
|
|
|
String test = "010000000000100000000010000000010000000100000010000010000100010010";
|
|
setRightAdjacent(test, 0);
|
|
setRightAdjacent(test, 1);
|
|
setRightAdjacent(test, 2);
|
|
setRightAdjacent(test, 3);
|
|
}
|
|
|
|
private static void setRightAdjacent(String aText, int aNumber) {
|
|
System.out.println("n = " + aNumber + ", Width = " + aText.length() + ", Input: " + aText);
|
|
|
|
char[] text = aText.toCharArray();
|
|
char[] result = aText.toCharArray();
|
|
for ( int i = 0; i < result.length; i++ ) {
|
|
if ( text[i] == '1' ) {
|
|
for ( int j = i + 1; j <= i + aNumber && j < result.length; j++ ) {
|
|
result[j] = '1';
|
|
}
|
|
}
|
|
}
|
|
|
|
String spaces = " ".repeat(16 + String.valueOf(aText.length()).length());
|
|
System.out.println(spaces + "Result: " + new String(result) + System.lineSeparator());
|
|
}
|
|
|
|
}
|