首页 > 解决方案 > 字符串字符和普通字符的相等性不起作用/如何获取这些字符的索引

问题描述

我正在尝试将用户字符串的字符与也从用户获得的 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;
    }
}

标签: javastringcharcompare

解决方案


private  static char ch1, ch2;
....
char ch1 = scan.next().charAt(0);

这不会分配给 ch1 而是在 getInput 方法范围内创建一个新变量,您需要这样做才能获得您期望的结果。

ch1 = scan.next().charAt(0);

推荐阅读