如何检查字符串是否匹配特定表达式?
How to check if a string matches a specific expression?
我想编写一个方法来检查字符串是否符合以下格式:Java 中的“Name Surname”。 Name和Surname之间最多space,且name和surname的首字母都要大写
这是我所做的:
public static Boolean correctFormat(ArrayList<String> e)
{
int x = 0;
for(int i = 0; i < e.size(); i++)
{
if (e.get(i).indexOf(" ") != -1 && str.substring()
{
x++;
}
}
但是,我找不到检查名字和姓氏首字母是否大写的方法。名字和姓氏的长度可能不同。
注意:该方法的参数是ArrayList,所以以ArrayList为输入。
您可以使用字符串拆分和 character.isuppercase() 以及循环过程来解决您的问题,如下所示
public class Test {
public static boolean validateString(String string){
String[] stringArray = string.split(" ");
if(null == string || stringArray.length>2 || stringArray.length == 1) return false;
for(String s : stringArray){
if(!(Character.isUpperCase(s.toCharArray()[0])))return false;
}
return true;
}
public static void main(String[] args) {
String s = "Hello World";
List<String> names = new ArrayList<>();
names.add(s);
names.forEach(string -> System.out.println("Is the string "+string+" valid :"+ validateString(s)));
}
}
输出:字符串 Hello World 是否有效:true
您可以使用正则表达式检查条件并使用 for-each 循环遍历 ArrayList。
public static Boolean correctFormat(ArrayList<String> e)
{
String camelCasePattern = "([A-Z][a-z]+ [A-Z][a-z]+)";
for(String s : e)
if(!s.matches(camelCasePattern))
return false;
return true;
}
只有当 ArrayList e 中的所有元素都按照定义的模式匹配时,以上代码才会 return 为真。
我想编写一个方法来检查字符串是否符合以下格式:Java 中的“Name Surname”。 Name和Surname之间最多space,且name和surname的首字母都要大写
这是我所做的:
public static Boolean correctFormat(ArrayList<String> e)
{
int x = 0;
for(int i = 0; i < e.size(); i++)
{
if (e.get(i).indexOf(" ") != -1 && str.substring()
{
x++;
}
}
但是,我找不到检查名字和姓氏首字母是否大写的方法。名字和姓氏的长度可能不同。
注意:该方法的参数是ArrayList,所以以ArrayList为输入。
您可以使用字符串拆分和 character.isuppercase() 以及循环过程来解决您的问题,如下所示
public class Test {
public static boolean validateString(String string){
String[] stringArray = string.split(" ");
if(null == string || stringArray.length>2 || stringArray.length == 1) return false;
for(String s : stringArray){
if(!(Character.isUpperCase(s.toCharArray()[0])))return false;
}
return true;
}
public static void main(String[] args) {
String s = "Hello World";
List<String> names = new ArrayList<>();
names.add(s);
names.forEach(string -> System.out.println("Is the string "+string+" valid :"+ validateString(s)));
}
}
输出:字符串 Hello World 是否有效:true
您可以使用正则表达式检查条件并使用 for-each 循环遍历 ArrayList。
public static Boolean correctFormat(ArrayList<String> e)
{
String camelCasePattern = "([A-Z][a-z]+ [A-Z][a-z]+)";
for(String s : e)
if(!s.matches(camelCasePattern))
return false;
return true;
}
只有当 ArrayList e 中的所有元素都按照定义的模式匹配时,以上代码才会 return 为真。