4 回答
TA贡献1865条经验 获得超7个赞
你可以试试这个:
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贡献1828条经验 获得超4个赞
发生这种情况是因为 String 类不是静态的。仔细查看 Java 文档中的方法的签名。split()
公共字符串[] 拆分(字符串正则表达式)
正如编译器明确抱怨的那样,您无法对非静态方法进行静态引用。
也许你需要这个?
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 参数传递给该参数,然后对其执行拆分操作。此外,您还缺少一个右括号。wordCount()
TA贡献1826条经验 获得超6个赞
你现在不会在任何事情上分裂。在这里,您尝试在 String 类上静态调用拆分。您需要在字符串的实例上进行拆分。您的所有方法都是静态的,因此,如果您希望它们拆分某些内容或计算传递该值所需的单词。
public static int linecount(){
return (String.split("[\r\n]")).length;
}
TA贡献1799条经验 获得超6个赞
你在这里分裂什么..?你确实意识到你不能写.您需要调用 拆分 来拆分它。你为什么不尝试一些事情, 比如: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));
}
添加回答
举报