'How do I convert to object different pattern in java
I have a set of data about book.
I have to convert the data to object. Line(book, chapter, verse, content)
The structure is
Book Chapter:Verse[tab]Content[Enter]
Example
deuteronomy 7:7 the lord did not set his love upon you, nor choose you, because ye were more in number than any people; for ye were the fewest of all people:
1 samuel 17:6 and he had greaves of brass upon his legs, and a target of brass between his shoulders.
As the book structure is different. 1 samuel and deuteronomy1 samuel consist a space. how do i convert these data to object in java
I have already divide into two partStringTokenizer itr = new StringTokenizer(value.toString().toLowerCase(),"\t");
I think I should use regex to split them. But I don't know how to do that.
Solution 1:[1]
Have a look at regular expressions. If the content doesn't contain any new line characters (i.e. \n which I assume is what you mean by [Enter]) you can try the following expression:
(.*?) (\d+):(\d+)\t([^\n]+)
Break down of the expression:
(.*?)matches anything but as little as possible and collects it into group 1. The match ends with a space which is not selected - this is the book(\d+)matches any sequence with at least 1 digit and captures it into a group. So(\d+):(\d+)captures chapter and verse into groups 2 and 3.\t([^\n]+)matches a tab followed by a sequence of at least 1 non-new line character which is captured into group 4. This is the content.
For working with regex like this, have a look at the classes Pattern and Matcher.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Thomas |
