Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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_Validation_Format - Fatal编程技术网

将字符串验证为Java格式规则

将字符串验证为Java格式规则,java,string,validation,format,Java,String,Validation,Format,我必须根据某些格式规则验证字符串,这些规则是: 字符串:包括字符串:int:int冒号 如何检查字符串是否包含;两个字符串,三个冒号和两个整数。加上一个字符串可以有一个空格,例如hello,每个整数可以是任意长度 已经尝试了一段时间,但找不到合适的方法。感谢您的帮助:使用正则表达式-类匹配器,这应该可以很好地工作 例如: import java.util.Scanner; public class ValidateInput { /// validate first name pu

我必须根据某些格式规则验证字符串,这些规则是:

字符串:包括字符串:int:int冒号

如何检查字符串是否包含;两个字符串,三个冒号和两个整数。加上一个字符串可以有一个空格,例如hello,每个整数可以是任意长度


已经尝试了一段时间,但找不到合适的方法。感谢您的帮助:

使用正则表达式-类匹配器,这应该可以很好地工作

例如:

import java.util.Scanner; 

   public class ValidateInput
{

/// validate first name

public static Boolean validateFirstName(String firstName)
{
return firstName.matches("[A-Z][a-zA-Z]*";
}//// end method validateFirstName
}

///// 


public void main(String[] args)
{
 //// get user input

Scanner scanner = new Scanner(System.in);
System.out.print("Please, enter first name: ");

//// validate user input and display error message

System.out.print("\nValidate Result:");

if(!ValidateInput.validateFirstName(firstName())
System.out.print("Invalide first name");

}

您可以使用正则表达式进行检查:

public boolean match(String s) {
    return s.matches("^.+ : .+ : \\d+ : \\d+$");
}
这将测试每个部分是否至少包含一个有效字符,即,部分字符串的任何字符和部分int的任何数字之间是否使用:作为分隔符

试验


注意测试赛\§$%&/=? : .; : : : ; : 100 : 111. 它返回true,因为附加的:是第二个字符串部分的一部分。

冒号周围是否需要空格?你能给我们看看代码吗?输入和输出示例?对字符串使用正则表达式匹配器。请参见主题中的,例如使用regexp。或者阅读字符串javadoc并将其解析为indexOf、substring、Character.isDigit,这是一个有用的方法。您需要给出关于什么是字符串的更多细节。它是否包含特殊字符?有数字吗?你的字符串也有冒号吗?如果没有,您可以将字符串拆分为:,检查结果的长度是否为4,以及最后两个条目是否解析为整数。这与问题有何关系?这是一个他想要的示例,不显示正则表达式的使用堆栈溢出的答案应该是针对原始问题的解决方案。太棒了!!他马上就开始工作了。我一直在研究正则表达式,但不知道我可以这样将它们相加。非常感谢。
System.out.println(match("blub : test : 100 : 111")); // true
System.out.println(match("1 : 1 : 1 : 1")); // true
System.out.println(match("blub : test : foo : bar")); // false
System.out.println(match("blub : test : 0.1 : 0.1")); // false
System.out.println(match("this is another : test : 100 : 111")); // true
System.out.println(match("!\"§$%&/()=?) : .; : : : ; : 100 : 111")); // true
System.out.println(match(" :  : 100 : 111")); // false