2014-05-07 81 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()将返回该文本的长度。