Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查字符串是否仅包含某些字符_Java_String_Symbols_Delimiter - Fatal编程技术网

Java 检查字符串是否仅包含某些字符

Java 检查字符串是否仅包含某些字符,java,string,symbols,delimiter,Java,String,Symbols,Delimiter,我有一个字符串,表示由“|”和“:”组成的32个字符长的条形码 我想检查任何给定字符串的有效性,以确保它是条形码。其中一个测试是检查它包含的唯一符号是上面提到的两个。我该怎么查呢 我首先使用了分隔符,但我认为这不是正确的方法 public boolean isValidBarCode (String barCode) { barCode.useDelimiter ("[|:]"); if (barCode.length() == 32) { return true;

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

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

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

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

  else 
  {
      return false;
  }
我知道我还需要检查其他一些东西,以便将其验证为条形码,但我只是为了检查给定字符串中的符号

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

您可以使用正则表达式:

boolean isBarCode = barCode.matches( "[\\|\\:]*" );
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;
    }
}
boolean correct=false;
对于(int i=0;i
您可以使用正则表达式:

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;
    }
}
boolean correct=false;
对于(int i=0;i
您可以使用正则表达式:

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;
    }
}
boolean correct=false;
对于(int i=0;i
您可以使用正则表达式:

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;
    }
}
boolean correct=false;
对于(int i=0;i
由于您要求条形码的长度正好为32个字符,并且仅由:和|个字符组成,因此您应该结合使用长度和正则表达式检查:

boolean isCorrect = barCode.matches( "[\\|\\:]*" );
if(isCorrect && barCode.length() == 32) {
    //true case
} else {
    //false case
}

由于您要求条形码的长度正好为32个字符,并且只包含:和|个字符,因此应结合使用长度和正则表达式检查:

boolean isCorrect = barCode.matches( "[\\|\\:]*" );
if(isCorrect && barCode.length() == 32) {
    //true case
} else {
    //false case
}

由于您要求条形码的长度正好为32个字符,并且只包含:和|个字符,因此应结合使用长度和正则表达式检查:

boolean isCorrect = barCode.matches( "[\\|\\:]*" );
if(isCorrect && barCode.length() == 32) {
    //true case
} else {
    //false case
}

由于您要求条形码的长度正好为32个字符,并且只包含:和|个字符,因此应结合使用长度和正则表达式检查:

boolean isCorrect = barCode.matches( "[\\|\\:]*" );
if(isCorrect && barCode.length() == 32) {
    //true case
} else {
    //false case
}

你知道正则表达式aka
regex
?可能值得一看您是否了解正则表达式aka
regex
?可能值得一看您是否了解正则表达式aka
regex
?可能值得一看您是否了解正则表达式aka
regex
?也许值得调查一下