Java 无法将长字符串分割为段

Java 无法将长字符串分割为段,java,android,arrays,Java,Android,Arrays,有一个长字符串——“sourcemeans”,它由一些从SQLITE数据库检索到的句子组成。我用“&”分隔下列句子: SentenceA&SentenceB&SentenceC ..... 检索长字符串后,该字符串将被划分为: SentenceA SentenceB SentenceC .... 我使用一个字符串数组(含义)来存储分割的句子,并应用以下代码来完成任务,但在执行时它会抛出StringIndexOutOfBoundsException String sourc

有一个长字符串——“sourcemeans”,它由一些从SQLITE数据库检索到的句子组成。我用“&”分隔下列句子:

SentenceA&SentenceB&SentenceC .....
检索长字符串后,该字符串将被划分为:

SentenceA 
SentenceB
SentenceC 
....
我使用一个字符串数组(含义)来存储分割的句子,并应用以下代码来完成任务,但在执行时它会抛出StringIndexOutOfBoundsException

String sourceMeaning=c.getString(1);
Log.w("SourceMeaning",sourceMeaning);
String[] Meanings=new String[]{};
int j=0;
for (int i=0;i<=sourceMeaning.length();i++){
    if (sourceMeaning.charAt(i)!='&'){
        Meanings[j]=Meanings[j]+sourceMeaning.charAt(i);
        Log.w("Translated",Meanings[j]);
    } else {
        j+=1;
    }
}
stringsourcemeans=c.getString(1);
Log.w(“sourcemeans”,sourcemeans);
字符串[]含义=新字符串[]{};
int j=0;

对于(int i=0;i我不确定是否完全理解您要做的事情,因此我将回答以下问题:

如何正确地划分句子

在Java中使用String类的split方法


您应该以这种方式拆分初始字符串

String sourceMeaning=c.getString(1);
Log.w("SourceMeaning",sourceMeaning);
String[] meanings = sourceMeaning.split("&");
您将拥有该数组中的所有内容

您可以使用split()命令,然后遍历生成的数组:

String[] sentences = sourceMeaning.split("&");
for (String sentence: sentences) {           
     //iterate through each one of the sentences, i.e:
     //SentenceA, SentenceB, ....
} 

您可以使用
str.split()
方法将字符串设置为数组,如下所示:

String[] Meanings = sourceMeaning.split("&");

我想你的
意思是
是空的,你在填充它,所以如果我需要声明一个int数组/字符串数组来放入一些东西,如何初始化数组?@LuftSchlafer,不客气:)如果你喜欢我的答案,请接受它或至少向上投票:)谢谢还有一个问题:如果我需要构建一个整数数组/字符串数组来存储某些内容,但实际长度未知;那么,如何声明和初始化数组以防止数组越界错误?@LuftSchlafer,提出另一个问题并链接到此处:)@LuftSchlafer,您应该学习一点Java语言:)您可以使用ArrayList或ArrayList?