[英]Error: The method add(java.lang.String) is undefined for the type java.lang.Object
[英]Why is my method undefined for type java.lang.String
我有一個 Parser 類,它接收一個字符串列表,並逐行打印出來。 我希望方法linecount()
(它不接受任何參數)輸出總行數,即:
import java.util.*;
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;
}
}
這樣當字符串列表給出為: List lines = Arrays.asList(new String[]{"one", "two three", ""})
Parser.parse(lines)
List lines = Arrays.asList(new String[]{"one", "two three", ""})
,調用Parser.parse(lines)
會給你
one
two three
因此, Parser.parse(lines).linecount()
應該輸出3
。 但是,我遇到了錯誤The method linecount() is undefined for the type java.lang.String
。 為什么會這樣?
Parser.parse(lines).linecount();//<--------- Here is the problem
Parser.parse()
返回一個String
並且linecount()
是Parser
類的靜態函數。 它不是String
類的功能。 你不能以這種方式調用Parser.parse(lines).linecount()
,這就是為什么它給出錯誤linecount() is undefined for the type java.lang.String
。 你必須單獨打電話。
Parser.parse(lines);
Parser.linecount();
並且您必須在調用linecount()
之前 popultae List<String> lines
Object 。
你的正則表達式也不對。 將"[\\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
import java.util.*;
public class Parser{
private List<String> lines;
public String parse(List<String> lines){
this.lines = lines;
return String.join(System.lineSeparator(), lines);
}
public int linecount(){
String newString = String.join(System.lineSeparator(), lines);
return (newString.split("[\r\n]")).length;
}
}
主要的()
Parser p = new Parse();
List lines = p.parse(Arrays.asList(new String[]{"one", "two three", ""}));
System.out.println(lines);
System.out.println(p.linecount());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.