我有符合以下格式的文本文件:
18:27:08.231主调试sample_client -这是一条调试消息,第39行定位7 18:27:09.231主要调试sample_client这是一个调试消息,第39行位置17 :27:10.231主要调试sample_client这是一个调试消息,第56行
我想得到最近的整数,它在字符串"Location“之后--这里是23。
到目前为止,我的扫瞄课如下:
import org.apache.logging.log4j.flume; */
// import org.slf4j.Logger;
// import org.slf4j.LoggerFactory;
import java.sql.Timestamp;
import java.util.Date;
import java.util.*;
import java.io.*;
import java.net.*;
public class ScannerTest { /* BEGINBRAC */
public static void main(String[] args) throws IOException {
int mostRecentLocation = 0;
Scanner scanner = new Scanner ("LogbackTutorialError.txt");
while (scanner.hasNextLine() ) {
final String lineFromFile = scanner.nextLine();
if(lineFromFile.contains("Location")){
System.out.print("the location is " + mostRecentLocation );
}
}
}
}// end class ScannerTest我怎样才能得到最近的数字呢?
发布于 2015-07-27 00:33:15
您可以使用String.substring(int)来删除Location上的所有内容。就像,
if (lineFromFile.startsWith("Location")) {
int mostRecentLocation = Integer.parseInt(lineFromFile
.substring(1 + "Location".length()).trim());
System.out.println("the location is " + mostRecentLocation);
}发布于 2015-07-27 00:27:51
下面的代码演示如何创建它。
import java.sql.Timestamp;
import java.util.Date;
import java.util.*;
import java.io.*;
import java.net.*;
public class ScannerTest {
public static void main(String[] args) throws FileNotFoundException {
int mostRecentLocation = 0;
File newFile = new File("LogbackTutorialError.log");
Scanner scanner = new Scanner (newFile);
int result = 0;
while (scanner.hasNextLine() ) {
String lineFromFile = scanner.nextLine();
Scanner lineScanner = new Scanner(lineFromFile);
if(lineScanner.findInLine("Location") != null){
result = lineScanner.nextInt() ;
mostRecentLocation = result;
}
}
System.out.println(" The location is : " + result );
}
}// end class ScannerTesthttps://stackoverflow.com/questions/31643397
复制相似问题