Java 无法将一行1和0解析为整数数组
我正在编写一个生活游戏java文件,在这个文件中,我必须读取一个给定的文件,其中有一定数量的行包含一串1或0。 (即Java 无法将一行1和0解析为整数数组,java,parsing,file-io,integer,Java,Parsing,File Io,Integer,我正在编写一个生活游戏java文件,在这个文件中,我必须读取一个给定的文件,其中有一定数量的行包含一串1或0。 (即0000010010100010000)如何将整个内容解析为一个整数数组,每个元素中包含一个或零?
0000010010100010000
)如何将整个内容解析为一个整数数组,每个元素中包含一个或零?:
String s ="0000010010100010000";
String[] sp = s.split("");
int[] arr = new int[sp.length];
for (int i = 0; i < sp.length; i++) {
arr[i] = Integer.parseInt(sp[i]);
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
并使用
public static int parseInt(String s) throws NumberFormatException
并将其分配给具有相同长度的int数组,您可能需要查看位集。
下面是一个使用它的示例:
import java.util.BitSet;
class Scratch {
public static void main(String[] args) {
BitSet bits1 = fromString("1000001");
BitSet bits2 = fromString("1111111");
System.out.println(toString(bits1)); // prints 1000001
System.out.println(toString(bits2)); // prints 1111111
boolean nthBit = bits1.get(3);//returns 3rd bit
}
private static BitSet fromString(final String s) {
return BitSet.valueOf(new long[] { Long.parseLong(s, 2) });
}
private static String toString(BitSet bs) {
return Long.toString(bs.toLongArray()[0], 2);
}
}
仅当字符串长度小于64时,此示例才有效
import java.util.BitSet;
class Scratch {
public static void main(String[] args) {
BitSet bits1 = fromString("1000001");
BitSet bits2 = fromString("1111111");
System.out.println(toString(bits1)); // prints 1000001
System.out.println(toString(bits2)); // prints 1111111
boolean nthBit = bits1.get(3);//returns 3rd bit
}
private static BitSet fromString(final String s) {
return BitSet.valueOf(new long[] { Long.parseLong(s, 2) });
}
private static String toString(BitSet bs) {
return Long.toString(bs.toLongArray()[0], 2);
}
}