Java计数大字符串

时间:2016-01-12 14:00:28

标签: java

众所周知,整数的字符数有限,所以当我尝试使用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));   

非常感谢

1 个答案:

答案 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