给定一个字符串str ,任务是使用正则表达式检查字符串是否是有效标识符。
定义Java标识符的有效规则是:
- 它必须以小写字母[az ] 或大写字母[AZ]或下划线(_)或美元符号($)开头。
- 它应该是一个单词,不允许有空格。
- 它不应该以数字开头。
例子:
Input: str = “$geeks123”
Output: True
Explanation: The given string satisfies all the above mentioned conditions.
Input: str = “$gee ks123”
Output: False
Explanation: The given string contains white spaces, therefore it is not a valid identifier.
Input: str = “1geeks$”
Output: True
Explanation: The given string start with digit, therefore it is not a valid identifier.
方法:这个问题可以通过使用正则表达式来解决。
- 获取字符串。
- 创建一个正则表达式来检查有效的标识符。
regex = "^([a-zA-Z_$][a-zA-Z\\d_$]*)$";
在哪里:
- ^表示字符串的起始字符。
- [a-zA-Z_$]表示,字符串只以小写字母或大写字母或下划线(_)或美元符号($)开头。>/li>
- [A-ZA-Z \\ d _ $] *表示,该字符串可以是字母数字或uderscore(_)或字符串的第一个字符之后美元符号($)。它包含一个或多个时间。
- $表示字符串的结尾。
- 将给定的字符串与正则表达式匹配。在Java,这可以使用 Pattern.matcher() 来完成。
- 如果字符串与给定的正则表达式匹配,则返回 true,否则返回 false。
下面是上述方法的实现:
// Java program to validate the
// identifiers using Regular Expression.
import java.util.regex.*;
class GFG {
// Function to validate the identifier.
public static boolean
isValidIdentifier(String identifier)
{
// Regex to check valid identifier.
String regex = "^([a-zA-Z_$][a-zA-Z\\d_$]*)$";
// Compile the ReGex
Pattern p = Pattern.compile(regex);
// If the identifier is empty
// return false
if (identifier == null) {
return false;
}
// Pattern class contains matcher() method
// to find matching between given identifier
// and regular expression.
Matcher m = p.matcher(identifier);
// Return if the identifier
// matched the ReGex
return m.matches();
}
// Driver Code.
public static void main(String args[])
{
// Test Case 1:
String str1 = "$geeks123";
System.out.println(isValidIdentifier(str1));
// Test Case 2:
String str2 = "$gee ks123";
System.out.println(isValidIdentifier(str2));
// Test Case 3:
String str3 = "1geeks$";
System.out.println(isValidIdentifier(str3));
}
}
输出:
true
false
false
如果您想与行业专家一起参加直播课程,请参阅Geeks Classes Live