java - 为什么在这段代码中我不能让 indexOf() 等于 0 以外的任何值?

标签 java iteration indexof anagram

我的主要目标是每次在正在搜索的单词中找不到字母时,为 indexOf 获取 -1 值。我可以使用这个值来确定单词是否是anagrams。然而,问题是我不断地为 indexOf 获取 0 。如果字母完全不同,我不应该得到 -1 吗?

import java.lang.*;
import java.io.*;
import java.util.*;


public class anagram
{


    public static void main(String args[])
    {

        Scanner kbReader = new Scanner(System.in);
        System.out.println("Enter first word");
        String a = kbReader.next();
        System.out.println("Enter second word");
        String b = kbReader.next(); ///User inputs 2 strings, a and b
        a = a.toLowerCase();
        b = b.toLowerCase();

        int numA = a.length();
        int numB = b.length();

        if (numA != numB)
           System.out.println("NOT AN ANAGRAM"); 



        for(int i = 0;i < numA; i++) ///continues until all letters are used
        {
            String letter = b.substring(i,i++);
            int checker = a.indexOf(letter);///checks word a for every letter of b

            System.out.println(checker); ///always get 0 for this value, why never -1?



       }
   }


}

最佳答案

更改为

String letter = b.substring(i,i + 1);

另请参阅post increment operator java

顺便说一下,大小相等的字符串并不意味着它们是 Anagrams

关于java - 为什么在这段代码中我不能让 indexOf() 等于 0 以外的任何值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53293187/

相关文章:

java - ListView - removeAll 不起作用?

JavaFX 的 WebEngine 卡在 RUNNING 状态

java - 在 Windows 7 上的 Eclipse Luna Release (4.4.0) 中克隆 GitHub 存储库

java - 从数组中删除唯一值

java - 使用 indexOf 将占位符替换为 Map 值

.net - 为什么 List<T>.IndexOf() 比 List<T>.Contains() 快很多?

r - 如何使用矢量长度不一致的 purrr::map2()

matlab - 如何创建一个表来保存 MATLAB 迭代中的数据?

java.nio.file.Paths - 如何在迭代时跳过无法访问的文件/文件夹

c# - 当 Unicode 0xFFFD 在字符串中时 IndexOf 匹配 - 错误或功能?