2014-05-07 110 views
1

我正在嘗試從日誌中讀取一系列字符串。字符串中的子串

目前琴絃類似於

:someuser some dates/times whatever :This is the message 

我想使用掃描儀的檢查起始字符確實是一個「:」,如果它是發現字符的長度到下一個「 :「然後使用子字符串(長度)在實際消息之前擺脫字符串的第一部分。

但是我只是想不出如何正確地做到這一點(主要是找到兩個「:」之間的長度)。我將如何去做這件事?

任何幫助表示讚賞。謝謝。

+0

[String#indexOf](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf%28int%29) – AntonH

+0

String#split()會做到這一點 – TheLostMind

回答

0

我是否正確地假設你想扔掉最後一個':'之前的所有東西? 假設你已經讀取到字符串行的線:

String message = line.substring(line.lastIndexOf(":")+1); 

應該做的伎倆。

0

您可以使用此找到兩個: S之間的文本長度:

String mystr=:someuser some dates/times whatever :This is the message; 
int len=(mystr.split(":")[1]).length(); 

哪裏.split將您的mystr並返回一個字符串數組。有0th元素,前外觀:1st元素的數組就是你想要知道長度的文本。

最後,.lenght()將返回該文本的長度。