我正在尝试Sphere Online Judge(SPOJ)的Next Palindrome问题,我需要找到一个高达一百万位整数的回文.我想过使用Java的函数来反转字符串,但它们是否允许String这么长?
在Java中,String对象可能具有的最大大小是什么,引用length()方法调用?
我知道length()返回的大小String为a char [];
我正在研究Scala 2.10.2.运行以下简单代码时:
object Test {
var input = "**** ANY STRING LONGER THAN 65535 CHARACTERS ****"
def main(args: Array[String]) {
println(input)
}
}
Run Code Online (Sandbox Code Playgroud)
抛出以下错误:
java.lang.ClassFormatError: Unknown constant tag 67 in class file Test$
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at Test.main(05.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
.....
Run Code Online (Sandbox Code Playgroud)
这是一个错误还是一个奇怪的限制?
谢谢,
我试图解决Java中的CodeChef问题,并发现我无法创建长度> 100万字符的字符串(至少使用我的编译器).我在一个字符串中粘贴了Pi的前一百万个十进制数字(例如String PI ="3.1415926535 ... 151"),它无法编译.当我取出Pi并将其替换为像"dog"这样的较短字符串时,代码会编译.任何人都可以确认这是否确实是Java的限制?
谢谢.