2

安卓编程新手。出现以下错误。

04-07 14:49:05.452: ERROR/AndroidRuntime(1566): FATAL EXCEPTION: main
        java.lang.OutOfMemoryError
        at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:94)
        at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:145)
        at java.lang.StringBuilder.append(StringBuilder.java:216)
        at com.myapp.StartupActivity.onListItemClick(StartupActivity.java:87)
        at android.app.ListActivity$2.onItemClick(ListActivity.java:319)
        at android.widget.AdapterView.performItemClick(AdapterView.java:292)
        at android.widget.AbsListView.performItemClick(AbsListView.java:1058)
        at android.widget.AbsListView$PerformClick.run(AbsListView.java:2514)
        at android.widget.AbsListView$1.run(AbsListView.java:3168)
        at android.os.Handler.handleCallback(Handler.java:605)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4340)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
        at dalvik.system.NativeStart.main(Native Method)

使用选项卡布局,并且有三个用于控制选项卡的活动。我想我越过了我的应用程序可用的内存堆。当您离开标签时,有人可以告诉我如何销毁对象吗?以下代码中发生错误。

String separator = "|"
String myString = "";
for(String string : Mylist)
{
    myString += myString + string + separator;
}
4

1 回答 1

1

试试String separator = "\\|"String separator = "|"

使用 java 使用管道符号时存在问题,或者您可以使用Pattern.quote("|")

@Qerub 值得注意的是,仅当表达式字符串编译到您的 java 代码中时,才需要双斜杠。

Java编译器需要一个斜线,以便它在表达式 String 对象中存储一个文字斜线。这不是正则表达式所独有的,在类文件中编译的所有 Java 字符串都以这种方式工作。如果您希望在编译的类文件中的字符串中有一个斜杠,请在 Java 源代码中键入两个斜杠。

如果在运行时将正则表达式传递给 Java 程序——通过命令行参数或属性值——则第一个斜杠不是必需的。

正则表达式解析器需要另一个斜杠,以便将管道视为文字字符。表达式解析器不关心字符串是编译到类文件中还是在运行时提供的。

Source code: \\|

which compiles to...

Class file: \|

现在被正则表达式解析器读取为...

表达式解析器视为:|

虽然我们在 split() 中使用的相同,但它被视为更改,这意味着字符串被每个字符分割

源代码:“查询”

"query".split("|")给出类似的结果

q
u
e
r
y
于 2012-04-07T09:33:21.707 回答