判定Java源文件名称
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
输入若干行字符串,判断每行字符串是否可以作为Java的源文件名称。其中:
Java源文件的命名规则:合法的 Java标识符+“.java”;
Java标识符的命名规则:可包含字母、数字、下划线、$,但是数字不能作为首字母。
Input
输入有多行,每行一个字符串。
Output
若该行字符串可做为Java的源文件名称,则输出“true”;否则,输出“false”。
Example Input
abc.java _test $test.java $12.java a 1.java a+b+c.java a’b.java 123.java 变量.java Main.java.java ab abc.java
Example Output
true false true true false false false false true false false
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str; while (sc.hasNext()) { str = sc.nextLine(); int flag = 1;// 标记变量 int i; char[] ch = str.toCharArray();// 将字符串转换为字符数组 if (Character.isLetter(ch[0]) || ch[0] == '_' || ch[0] == '$') { //判断第一个字符是否是字母或下划线或$符号 for (i = 1; i < ch.length - 5; i++) { if (Character.isLetterOrDigit(ch[i]) || ch[i] == '_' || ch[i] == '$') { //判断第i个字符是否是字母或数字或下划线或$符号 flag = 1; } else { flag = 0; break; } } if (flag == 1 && ch[i] == '.' && ch[i + 1] == 'j' && ch[i + 2] == 'a' && ch[i + 3] == 'v' && ch[i + 4] == 'a') { flag = 1; } else { flag = 0; } } else { flag = 0; } if (flag == 1) { System.out.println("true"); } else { System.out.println("false"); } } sc.close(); } }