我要開始和結束的文本下方指數...如何找到結尾行的指數在java中
這裏開始是固定的,但最終字不fixed..ending是高達行結束...
線路是:
Cardiovascular:ROS:Neurological:
Cardiovascular:ROS:XYZ:
Cardiovascular:ROS:ABC:::
我能找到的起始索引,但如何找到結束index..as它是不固定的。
我要開始和結束的文本下方指數...如何找到結尾行的指數在java中
這裏開始是固定的,但最終字不fixed..ending是高達行結束...
線路是:
Cardiovascular:ROS:Neurological:
Cardiovascular:ROS:XYZ:
Cardiovascular:ROS:ABC:::
我能找到的起始索引,但如何找到結束index..as它是不固定的。
如果你是存儲該行作爲String
,然後yourString.indexOf(yourString.substring(yourString.length-1));
如果使用正則表達式匹配器,它會爲您提供每場比賽開始和結束索引。
示例代碼
// move this to a constant
final Pattern pattern = Pattern.compile(
"\\b # word boundary (start of word) \n" +
"\\w+ # one or more word characters \n" +
"\\b # another word boundary (end of word)", Pattern.COMMENTS);
final String line = "Cardiovascular:ROS:Neurological:";
final Matcher matcher = pattern.matcher(line);
while(matcher.find()){
System.out.println("Found word "+matcher.group()+" at start index: "+matcher.start()+ ", end index: "+matcher.end());
}
輸出:
找到字心血管在開始索引:0,結束索引:14
在開始索引實測值字ROS:15,端指數:18
在開始索引實測值字神經:19,端指數:31
如果你需要一個列索引,使用每行一個匹配器,但如果你從字符串的開始需要一個指標,不拆的線,運行在整個字符串匹配器。
如果你想在最後一個字符的行String類型的索引,然後指數= line.length() - 1
你可以使用字符串標記把你的字符串爲標記,並採取第一併通過令牌循環,直到你到達最後。
代碼
import java.util.StringTokenizer;
public class App {
static String in = "Cardiovascular:ROS:Neurological:";
static String in2 = "Cardiovascular:ROS:XYZ:";
static String in3 = "Cardiovascular:ROS:ABC:::";
public static void main(String[] args) {
StringTokenizer st = new StringTokenizer(in2, ":");
if(st.hasMoreTokens()) {
String first = st.nextToken();
for (int i = 0; i < st.countTokens()-1; i++) {
st.nextToken();
}
String last = st.nextToken();
System.out.println(first + " " + last);
System.out.println(in2.indexOf(last));
}
}
}
我不知道你要得到什麼,但如果是":"
之間每行的最後一個有效的字符串。
String source = "Cardiovascular:ROS:Neurological:" + "\n" +
"Cardiovascular:ROS:XYZ:" + "\n" +
"Cardiovascular:ROS:ABC:::" + "\n" ;
BufferedReader reader = new BufferedReader(new StringReader(source));
while(true) {
String line = reader.readLine();
if(line == null) {
break;
}
String[] split = line.split(":");
for(int i = split.length; i >= 0; i--) {
String part = split[i-1];
if(!part.isEmpty()){
int lineIndex = line.lastIndexOf(part);
int lineOffset = source.lastIndexOf(line);
System.out.println("found: "+part+ " line-index: "+lineIndex+ " text index: "+(lineOffset+lineIndex));
break;
}
}
}
reader.close();
出
found: Neurological line-index: 19 text index: 19
found: XYZ line-index: 19 text index: 52
found: ABC line-index: 19 text index: 76
所以究竟你需要在這三個例子 –
這只是款的一部分...我有整個文檔中,有一條線是包含上述字符串(不像上面討論的那樣固定)。 – Sweety