#java
#java
Вопрос:
Следующий код предназначен для проверки того, является ли данное слово или строка pangram или нет. Но я сталкиваюсь с этой ошибкой: non-static method hasNextLine() cannot be referenced from a static context
Я использовал этот сайт для решения https://www.onlinegdb.com/online_java_compiler кто-нибудь может помочь мне решить эту проблему, пожалуйста?
import java.util.Scanner;
class PangramChecker {
public void main(String[] args)
{
Scanner input = new Scanner(System.in);
if(Scanner.hasNextLine())
{
String words = input.nextLine();
System.out.println(check(words));
}
}
public boolean check(String sentence){
sentence= sentence.replace(" ","");
String temp="";
for(int c:sentence.toCharArray())
if((c>64 amp;amp;c<91)||(c>96 amp;amp; c<123))
temp =("" (char)c);
sentence = temp;
if(sentence.length()<26)
return false;
else
{
sentence= sentence.toLowerCase();
String output="";
for(char c:sentence.toCharArray())
output=presenceChecker(output,c);
System.out.println("The output is:" output);
if(output.length()==26)
return true;
else
return false;
}
}
public String presenceChecker(String str,char c)
{
boolean present=false;
for(char k:str.toCharArray())
{
if(k==c)
present=true;
}
if(present)
str =("" c);
return str;
}
}
Комментарии:
1. Очевидно, вы допускаете незначительную ошибку. Вместо этого вы должны вызывать
input.hasNextLine()
.
Ответ №1:
Строка 5:
Scanner input = new Scanner(System.in);
Строка 6:
if(Scanner.hasNextLine())
Ваша Scanner
переменная вызывается input
, а не Scanner
вызывается . Вы пытаетесь вызвать метод в классе, но он не является статическим, поэтому метод есть только у экземпляров этого класса.