检查数组是不是具有特定字符,为啥我的代码不起作用?

Posted

技术标签:

【中文标题】检查数组是不是具有特定字符,为啥我的代码不起作用?【英文标题】:Checking if an array has a certain character, why is my code not working?检查数组是否具有特定字符,为什么我的代码不起作用? 【发布时间】:2013-02-15 11:24:50 【问题描述】:

您好,这里有一些用于检查有效字符的代码,尽管该代码不起作用。即使 'operand' 是一个有效字符,它也永远不会打印 yes,并返回 false。无论如何,即使该字符是有效的,它也只是无法识别它并且总是转到 else 语句。请帮忙!

public static boolean checkValidOperands(char operand) 

    char[] validOperators = '+', '-', '*', '/', 'q';
    List<char[]> validOp = Arrays.asList(validOperators);
    if (validOp.contains(operand))  
        System.out.println("Yes");
        return false;
      else 
        System.out.println("Please enter valid operand");
        return true;
    

【问题讨论】:

这是char[]List,而不是charList 如何修复此代码以使其正常工作? 看到这个问题:***.com/questions/1248763/arrays-aslist-of-an-array 编辑:或@Reimeus 回答 您确定 validOp 的声明不应该是 List 而不是 List?您不是在寻找字符 数组 的列表,而只是在寻找字符... 是的,这似乎是问题所在,我尝试了 List 无法识别... 【参考方案1】:

对于一组字符来说,字符串是一种更好的数据结构。例如,

String validOperators = "+-*/q";

if (validOperators.indexOf(operand) != -1)  
    System.out.println("Yes");
    return false;

【讨论】:

【参考方案2】:

您创建字符列表的方式是错误的。

在您当前的代码中,您创建的列表实际上是一个字符数组列表,而不是字符。

import java.util.Arrays;
import java.util.List;

public class Test
    public static void main(String[] args)
    char ch = '+';
    System.out.println(checkValidOperands(ch));

    

    public static boolean checkValidOperands(char operand) 

        Character[] validOperators = '+', '-', '*', '/', 'q';
        List<Character> validOp = Arrays.asList(validOperators);
        if (validOp.contains(operand))  
            System.out.println("Yes");
            return false;
          else 
            System.out.println("Please enter valid operand");
            return true;
        
    

PS:同样对于未来,不要使用List&lt;char&gt;List&lt;int&gt; 等,因为在 Java 中不能使用原始类型作为泛型。请改用其对应的对象计数器部件。更多信息请参考这个问题Why can Java Collections not directly store Primitives types?

【讨论】:

非常感谢,这正是我想要的!【参考方案3】:

你可以使用:

List<Character> validOp = Arrays.asList('+', '-', '*', '/', 'q');

【讨论】:

以上是关于检查数组是不是具有特定字符,为啥我的代码不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

Discord.py:检查用户是不是具有列表中的角色 ID 不起作用

检查数组中是不是存在迭代器时,array.includes 不起作用[重复]

如何检查字符串是不是包含在 ArrayList 中?包含不起作用[重复]

为啥我的正则表达式组量词不起作用?

为啥 mongodb 查询在数组中查找具有两个值的文档不起作用?

为啥我的 tasks.loop 在 Heroku 上不起作用?