java - 字符串字符和普通字符的相等性不起作用/如何获取这些字符的索引
问题描述
我正在尝试将用户字符串的字符与也从用户获得的 2 个字符进行比较,如果其中一个字符在特定索引中等于该字符串的字符,那么我需要打印该索引。
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);
推荐阅读
- java - 当我在 Java 中失去与 TIBCO JMS 的连接时,如何检索当前消息?
- vb.net - 比较列表框选定项
- visual-studio-code - 为什么 navigator.getUserMedia 在 VScode 扩展 webview 中未定义?
- python - 如何在键值对中找到小于指定阈值的公共键
- r - 计算不同因素组合的行数
- asp.net - EF 核心包括获取不需要的数据的多个关系
- wiremock - 达到先前的请求计数后,如何配置wiremock以发送不同的响应(相同的url和请求)?
- ajax - Wordpress REST API - 来自 Chrome 扩展的通话后
- sql - MSSQL:拥有表的一对多关系
- c# - 我收到一条关于 getwaiter 的错误消息