log sorter

master
bvn13 2023-03-31 10:52:42 +03:00
parent 68fd1c6c00
commit 41436de8bd
1 changed files with 18 additions and 1 deletions

View File

@ -32,6 +32,7 @@ public class LogSorter {
continue;
}
String previousLine = null;
int lineNum = 1;
for (String line : lines) {
if (line.indexOf(" ") != timestampLength) {
previousLine = append(previousLine, line);
@ -39,7 +40,7 @@ public class LogSorter {
if (previousLine != null) {
logs.add(new LogEntry(previousLine, filename));
}
previousLine = line;
previousLine = putLineNumber(timestampLength, lineNum++, lines.size(), line);
}
}
if (previousLine != null) {
@ -60,6 +61,22 @@ public class LogSorter {
return " ".repeat(Math.max(0, length));
}
private static String putLineNumber(int timestampLength, int lineNumber, int linesCount, String line) {
if (line.length() <= timestampLength) {
return line;
}
return line.substring(0, timestampLength) + "-" + fillNumber(lineNumber, digitsCount(linesCount)) + line.substring(timestampLength);
}
private static String fillNumber(int n, int length) {
final String s = "0".repeat(length) + n;
return s.substring(s.length() - length);
}
private static int digitsCount(int number) {
return String.valueOf(number).length();
}
private static String append(String a, String b) {
StringBuilder sb = new StringBuilder();
if (a != null) {