从字符串中提取标题-Java
只是想知道,从字符串中的标题中提取信息的最佳方式是什么 我有一个类和getter方法用于标题(摘要,标题1,标题2) 比如说, 如果我有一个等于的字符串从字符串中提取标题-Java,java,string,parsing,Java,String,Parsing,只是想知道,从字符串中的标题中提取信息的最佳方式是什么 我有一个类和getter方法用于标题(摘要,标题1,标题2) 比如说, 如果我有一个等于的字符串 This: is the first line of a String: xx-string: This is a long String Summary: This is the summary of the String Heading 1: This is the first heading Heading 2: This is a
This: is the first line of a String: xx-string: This is a long String
Summary:
This is the summary of the String
Heading 1:
This is the first heading
Heading 2:
This is another heading
设置字符串值的理想方法是什么
摘要,标题1,标题2
到
谢谢
编辑
这就是我想要的
public void setHeadings(Data fileData) {
String description = fileData.getDescription();
//String [] headings = description.split(":");
int indexOf;
indexOf = description.indexOf("Summary");
if(indexOf != -1)
{
String subString = description.substring(indexOf);
int indexOfNextHeading = subString.indexOf(":");
if(indexOfNextHeading != -1)
{
System.out.println(indexOf + ":" + indexOfNextHeading);
setSummary(description.substring(indexOf,indexOfNextHeading-1));
System.out.println(description.substring(indexOf,indexOfNextHeading));
}
}
}
但是,这会抛出一个数组越界异常。使用Scanner对象
import java.util.Scanner;
然后使用它一次读取一行字符串
Scanner sc = new Scanner(string);
sc.useDelimiter("\n"); // read one line at a time
现在sc.hasNext()告诉您是否还有行要读,sc.next()返回下一行。使用此选项一次遍历一行字符串。您可以测试每一行,看看它是否等于“Summary:”或“Heading 1:”,等等。然后,您可以使用StringBuffer从要创建的每个字符串中添加每一行
如果你愿意,我可以为你写这篇文章,但它相当简单。摘要和标题是多行段落吗?第一行怎么样?我们是不是把第一行都删掉了?听起来像是作业…?不是作业,我是实习生。第一个文本框是一串,谢谢你的回答!我现在就来试试。我现在就来试试,如果说“摘要”包含多行信息,我该怎么办?例如,我如何知道何时停止读取特定标题的行?我会继续将每一行附加到StringBuffer,直到出现一行,显示它必须已结束。如果您的格式始终为“摘要:某些行标题1:somelines”,那么您可以一直走到找到一行等于“标题1:”。不幸的是,这种格式并不总是这样,有些标题可能不存在。。有什么建议吗?你只需要找到一些所有文档都有的标志,这些标志将不同的部分分开,然后寻找它们。也许总是有一个空白行分隔部分。可能行只在节的开头以冒号结尾。
Scanner sc = new Scanner(string);
sc.useDelimiter("\n"); // read one line at a time