我正在尝试从日志中读取一系列字符串。字符串中的子串
目前琴弦类似于
: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