4 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
你可以試試這個(gè):
private static String array;
public static void parse(List<String> lines){
array = String.join(System.lineSeparator(), lines);
}
public static int lines(){
return (array.split("[\r\n]")).length;
}
public static int words() {
String[] newStringArr = array.split("[\r\n]");
int counter = (array.split("[\r\n]")).length;
for (String a : newStringArr){
counter = counter + (a.length() - a.replaceAll(" ", "").length());
}
return counter;
}
public static void main(String[] args) {
List<String> lines = Arrays.asList(new String[]{"one", "two three", ""});
LineCounter.parse(lines);
System.out.println(LineCounter.lines());
System.out.println(LineCounter.words());
}

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
發(fā)生這種情況是因?yàn)?String 類不是靜態(tài)的。仔細(xì)查看 Java 文檔中的方法的簽名。split()
公共字符串[] 拆分(字符串正則表達(dá)式)
正如編譯器明確抱怨的那樣,您無法對非靜態(tài)方法進(jìn)行靜態(tài)引用。
也許你需要這個(gè)?
public static int wordcount(String myString) {
String[] newStringArr = myString.split("[\r\n]");
int counter = myString.split("[\r\n]").length;
for (String a : newStringArr) {
counter = counter + (a.length() - a.replaceAll(" ", "").length());
}
return counter;
}
將 String 參數(shù)傳遞給該參數(shù),然后對其執(zhí)行拆分操作。此外,您還缺少一個(gè)右括號。wordCount()

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
你現(xiàn)在不會(huì)在任何事情上分裂。在這里,您嘗試在 String 類上靜態(tài)調(diào)用拆分。您需要在字符串的實(shí)例上進(jìn)行拆分。您的所有方法都是靜態(tài)的,因此,如果您希望它們拆分某些內(nèi)容或計(jì)算傳遞該值所需的單詞。
public static int linecount(){
return (String.split("[\r\n]")).length;
}

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
你在這里分裂什么..?你確實(shí)意識到你不能寫.您需要調(diào)用 拆分 來拆分它。你為什么不嘗試一些事情, 比如:String.split(..)object ( string )
public static int getWordCount(String lines){
return lines.split(" |\n").length;//based on word separator <space> and \n
}
public static void main(String[] args)
{
String nChars = "ABCDEF 12\nBLue";
System.out.println(getWordCount(nChars));
}
添加回答
舉報(bào)