我正在编写一个程序,该程序搜索特定字符并在用户输入的字符串中找到该字符后立即显示其位置。我曾尝试在弹出错误的行上更改语法,但是相同的错误继续发生。我对编码非常陌生,因此非常感谢您的帮助!
import java.util.Scanner;
public class Lab10
{
public static String character;
public static String input;
public static int position;
public static StringBuilder str = new StringBuilder(input);
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter a string: ");
input = keyboard.nextLine();
System.out.print("Enter a character: ");
character = keyboard.nextLine();
System.out.println(" ");
getPosition();
System.out.print("The position of the first '" + character +"' found is" + position);
}
public static int getPosition()
{
for (position = 0; position <= str.length(); position++)
{
char charAt = str.charAt(position);
if (character.equals(charAt))
{
return position;
}
else
{
position++;
}
}
return position;
}
}
谢谢大家指出我的语法错误。在我修复错误之后,它的编译就很好了,但是当我尝试在terminal / cmd中编译它时,出现了另一个完整的错误
Exception in thread "main" java.lang.ExceptionInInitializerError Caused by: java.lang.NullPointerException at java.lang.S
答案 0 :(得分:1)
这应该是character.equals(charAt))
而不是character.equal(charAt))
,您需要将String
与String
而不是Char
与String
进行比较。
答案 1 :(得分:0)
其equals()我的朋友:D,我已经遇到了许多类似的问题xD。
答案 2 :(得分:0)
对于比较两个字符,最好使用==,因为equals方法是 用于字符串和对象。
if (character == charAt){
return position;
}