我正在嘗試從日誌中讀取一系列字符串。字符串中的子串
目前琴絃類似於
:someuser some dates/times whatever :This is the message
我想使用掃描儀的檢查起始字符確實是一個「:」,如果它是發現字符的長度到下一個「 :「然後使用子字符串(長度)在實際消息之前擺脫字符串的第一部分。
但是我只是想不出如何正確地做到這一點(主要是找到兩個「:」之間的長度)。我將如何去做這件事?
任何幫助表示讚賞。謝謝。
我正在嘗試從日誌中讀取一系列字符串。字符串中的子串
目前琴絃類似於
:someuser some dates/times whatever :This is the message
我想使用掃描儀的檢查起始字符確實是一個「:」,如果它是發現字符的長度到下一個「 :「然後使用子字符串(長度)在實際消息之前擺脫字符串的第一部分。
但是我只是想不出如何正確地做到這一點(主要是找到兩個「:」之間的長度)。我將如何去做這件事?
任何幫助表示讚賞。謝謝。
我是否正確地假設你想扔掉最後一個':'之前的所有東西? 假設你已經讀取到字符串行的線:
String message = line.substring(line.lastIndexOf(":")+1);
應該做的伎倆。
您可以使用此找到兩個:
S之間的文本長度:
String mystr=:someuser some dates/times whatever :This is the message;
int len=(mystr.split(":")[1]).length();
哪裏.split
將您的mystr
並返回一個字符串數組。有0th
元素,前外觀:
和1st
元素的數組就是你想要知道長度的文本。
最後,.lenght()
將返回該文本的長度。
[String#indexOf](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf%28int%29) – AntonH
String#split()會做到這一點 – TheLostMind