一、题目链接
http://noi.openjudge.cn/ch0107/06/
二、解题思路
◎ 第一个字符是数字字符,说明给定字符串不是合法C标识符;
◎ 循环遍历给定字符串的每个字符:
→ 如果当前字符既不是数字也不是字母也不是下划线,说明给定字符串不是合法C标识符;
◎ 以上情况均未发生,说明给定字符串是合法C标识符;
◎ java.lang.Character.isLetterOrDigit(char ch)方法:返回true当且仅当ch为数字字符或字母字符,否则false。
三、实施步骤
◆ 方法public boolean isIdentifier(String text)处理所有业务逻辑:
→ 参数text为String类型的对象,代表给定字符串;
→ 方法isIdentifier返回true当且仅当text是合法C标识符,否则false。
◇ 方法isIdentifier实施步骤如下:
◎ 首先,定义char[] chars=text.toCharArray(),将text的内容转存进chars数组;
◎ 其次,如果isDigit(chars[0]):返回false;
◎ 然后,通过foreach循环遍历chars数组的每个字符e,循环处理如下:
→ 如果!isLetterOrDigit(e)&&e!='_':返回false;
◎ 最后,返回true。
◇ 在方法main中输入给定字符串,将其作为参数注入方法isIdentifier,根据计算结果输出yes或者no。
四、Java程序
import java.util.Scanner;
import static java.lang.Character.isDigit;
import static java.lang.Character.isLetterOrDigit;
public class Main {
public boolean isIdentifier(String text) {
char[] chars = text.toCharArray();
if (isDigit(chars[0])) {
return false;
}
for (char e : chars) {
if (!isLetterOrDigit(e) && e != '_') {
return false;
}
}
return true;
}
public static void main(String[] args) {
Main test = new Main();
Scanner input = new Scanner(System.in);
String text = input.next();
System.out.print(test.isIdentifier(text) ? "yes" : "no");
}
}