如何解决字符串字符和普通字符的相等不起作用/如何获取这些字符的索引
我正在尝试将用户String的字符与也从用户那里获得的2个字符进行比较,如果其中之一等于特定索引中该String的字符,那么我需要打印该索引。
import java.util.Scanner;
public class TestIndexOf {
private static String text;
private static char ch1,ch2;
public static void main(String[] args) {
TestIndexOf test = new TestIndexOf();
test.getInput();
System.out.println(test.getIndex(text,ch1,ch2));
}
public static void getInput() {
Scanner scan = new Scanner(System.in);
System.out.println("Enter word and chars: ");
text = scan.nextLine();
char ch1 = scan.next().charAt(0);
char ch2 = scan.next().charAt(0);
}
public static int getIndex(String text,char ch1,char ch2) {
for (int i = 0; i < text.length(); i++) {
if (text.charAt(i) == ch1) {
return i;
}
if (text.charAt(i) == ch1) {
return i;
}
}
return -1;
}
}
解决方法
private static char ch1,ch2;
....
char ch1 = scan.next().charAt(0);
这不会分配给ch1,而是在getInput方法范围内创建一个新变量,您需要这样做以获得所需的结果。
ch1 = scan.next().charAt(0);
,
您的变量ch1和ch2被定义了两次。首先,它们在您的类上声明为静态字段,但未初始化。其次,将它们声明为getInput
的局部变量并在那里进行初始化,但是作为局部变量,无法从方法外部访问它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。