Parser.parse(lines).linecount();//<--------- Here is the problem
Parser.parse()
возвращает a String
, а linecount()
- статическая функция класса Parser
. Это не функция класса String
. Вы не можете звонить таким образом Parser.parse(lines).linecount()
, и поэтому он выдает ошибку linecount() is undefined for the type java.lang.String
. Вы должны позвонить отдельно.
Parser.parse(lines);
Parser.linecount();
И вы должны заполнить List<String> lines
Объект до вызова linecount()
.
Ваш Регекс также не прав. Заменить "[\r\n]"
на "[\\r | \\n]"
. Вывод программы указывается в конце.
import java.util.Arrays;
import java.util.List;
public class Parser {
private static List<String> lines;
public static String parse(List<String> lines) {
return String.join(System.lineSeparator(), lines);
}
public static int linecount() {
String newString = String.join(System.lineSeparator(), lines);
return (newString.split("[\\r | \\n]")).length;
}
public static void main(String[] args) {
lines = Arrays.asList("one", "two three", "");
lines.forEach(System.out::println);
int count = Parser.linecount();
System.out.println(count);
}
}
Выход:
one
two three
3