java - 检查字符串是否只包含某些字符

标签 java string symbols delimiter

我有一个字符串,表示由“|”组成的 32 个字符长的条形码和 ”:”。

我想检查任何给定字符串的有效性以确保它是条形码。其中一项测试是检查它包含的唯一符号是否是上面提到的两个。我该如何检查?

我首先使用了分隔符,但我认为这不是正确的方法。

public boolean isValidBarCode (String barCode)
{
  barCode.useDelimiter ("[|:]");
  if (barCode.length() == 32)
  {
       return true;
  }         

  else 
  {
      return false;
  }

我知道我需要检查其他事情才能将其验证为条形码,但我只是为了检查给定字符串中的符号而询问。

我是一名初学者程序员,因此非常感谢您的帮助!

最佳答案

您可以使用正则表达式:

boolean correct = string.matches("[\\:\\|]+");

正则表达式的说明:它检查字符串是否由 1 个或多个字符(这就是 + 后缀的作用)组成,即 :| 。我们通常会写 [:|]+,但由于 : 和(我认为)| 是正则表达式中的特殊字符,因此需要将它们用反斜杠转义。并且反斜杠必须在字符串文字中转义,因此需要双反斜杠。

或者您可以简单地使用循环编写 5 行算法:

boolean correct = false;
for (int i = 0; i < string.length() && correct; i++) {
    char c = string.charAt(i);
    if (c != ':' && c != '|') {
        correct = false;
    }
}

关于java - 检查字符串是否只包含某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22700748/

相关文章:

java - 数据库连接错误

php - php中如何删除字符串的一部分

java - 取消格式化字符串

lisp - 普通口齿不清 : Hunchentoot: Strange behavior with ASSOC

java - 需要创建用户在 swing 应用程序中输入的信息并将其写入文件

java - 我如何使用条件登录并将列表转换为 JSON 格式

java - 业务逻辑和数据库存储的单独数据表示

c - 奇怪的 react

c - 无线编程代码运行时丢失符号