众所周知,整数的字符数有限,所以当我尝试使用lastString.length()
时,它总会失败,因为字符数超过了int可以容纳的数字。
所以这就是我的问题。
我有一个字符串,大约有160个变量+或 - 而我想要的是计算该字符串中的字符数。
以下是我尝试使用的代码,但它仅适用于少量字符。
String lastString = "0110011101100011011000110110110001101001011011100111010101111000";
char[] result = new char[lastString.length() / 8];
for (int i = 0; i < lastString.length(); i += 8) {
String sub = lastString.substring(i, i + 8);
result[i / 8] = (char) Integer.parseInt(sub, 2);
}
System.out.println(new String(result));
非常感谢
答案 0 :(得分:2)
你错了。字符串的最大长度超过2 147 000 000(这可能已经足够了),但如果你的字符串长度不能被8分割,则子字符串方法以错误结束。
此代码
String lastString = "1";
char[] result = new char[lastString.length() / 8];
for (int i = 0; i < lastString.length(); i += 8) {
String sub = lastString.substring(i, i + 8);
result[i / 8] = (char) Integer.parseInt(sub, 2);
}
System.out.println(new String(result));
以
结尾Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 8
at java.lang.String.substring(String.java:1951)
at javaapplication64.JavaApplication64.main(JavaApplication64.java:21)
Java Result: 1