【问题标题】:Why we have to use index!= -1 for comparing indexOf alphabets in java为什么我们必须使用 index!= -1 来比较 java 中的 indexOf 字母
【发布时间】:2018-12-08 05:49:08
【问题描述】:

我不明白为什么我们应该在 if 语句中使用 idx != -1

这是我朋友的代码

public static String encrypt(String input, int key)
        {
            String alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            String shifted =alphabet.substring(key)+alphabet.substring(0,key);
            StringBuilder encrypted=new StringBuilder(input);
            for(int i=0; i<encrypted.length();i++)
            {
                char current=encrypted.charAt(i);
                int idx=alphabet.indexOf(current);
                if(idx !=-1) {
                    char newchar = shifted.charAt(idx);
                    encrypted.setCharAt(i, newchar);

                }

            }
            return encrypted.toString();


        }

请帮帮我 谢谢。

【问题讨论】:

  • 如果没有找到indexOf的结果将是-1
  • 因为indexOf 将返回您在给定字符串中寻找的char 的位置。如果没有找到,则返回 -1
  • 查看String#indexOf(int ch) here 的JavaDoc。
  • 因为您调用的方法的公开文档建议这样做。

标签: java string indexing


【解决方案1】:

int idx=alphabet.indexOf(current); 行如果是字母则返回有效索引 0~25,如果不是字母则返回 -1 未找到。

【讨论】:

    【解决方案2】:

    public int indexOf(String str) 是 String 类的函数。
    str 是您要查找的搜索字符串,它返回找到它的位置(索引)。

    如果没有找到它会返回 -1

    如果你没有找到你要找的字符,你就想做任何事情,你需要将返回值与 -1 进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-06
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多