请教~~~之前问过,但是又出现了新问题
1 语料库 中 存放 是 在 语言 实际 使用 。 中 真实 出现过 语言 材料 。 国家 建设
2 语料库 是 承载 语言 知识 。 基础 资源 不等于 语言 知识 。
问题描述如下:
*******************************************************************************************
以上是我要处理的字符串,分两行,语句是分好词的,想统计每行中各句话的开起始位置。
最后的结果类似如下形式
1:1-8~10-14~15-16
就是第一行:第一句话是第1个词到第8个词,第二句是第10个词到第14个词(因为句号占了1个词,所
以第二句是从第10个词开始)
2:1-5~7-11
*******************************************************************************************
String[] sa = {
"语料库 中 存放 是 在 语言 实际 使用 。 中 真实 出现过 语言 材料 。 国家 建设 ",
"语料库 是 承载 语言 知识 。 基础 资源 不等于 语言 知识 。"
};
for (int i=0, j=0; i<sa.length; i++) {
StringBuilder sb = new StringBuilder();
sb.append(i+1).append(":").append(1);
String[] ss = sa[i].split("\\s+");
for (j=0; j<ss.length; j++) {
if (ss[j].equals("。")) {
sb.append("-").append(j);
if (j != ss.length-1) {
sb.append("~").append(j+2);
}
}
}
System.out.println(sb);
}
这个程序只能处理最后末尾有句号的,但是像我举得第一行的例子,末尾没有句号,就统计不出来位置,求解~~~~~~~~~
------解决方案--------------------
Java code
String[] sa = {
"语料库 中 存放 是 在 语言 实际 使用 。 中 真实 出现过 语言 材料 。 国家 建设 ",
"语料库 是 承载 语言 知识 。 基础 资源 不等于 语言 知识 "
};
for (int i=0, j=0; i<sa.length; i++) {
StringBuilder sb = new StringBuilder();
sb.append(i+1).append(":").append(1);
String[] ss = sa[i].split("\\s+");
for (j=0; j<ss.length; j++) {
if (ss[j].equals("。")) {
sb.append("-").append(j);
if (j != ss.length-1) {
sb.append("~").append(j+2);
}
}else if(j==ss.length-1){
sb.append("-").append(j+1);
}
}
System.out.println(sb);
}