`
Brucegaochina
  • 浏览: 40644 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

验证java变量名是否合法

阅读更多
java中变量的命名规则:
[1]$,数字,下划线打头;后面可以是数字,字母,下划线;
[2]当然变量自然不能是java中的关键字了(程序中还没做判断)
[3]下面是实现的1.0版本,程序还有需要改进的地方,大家不妨指出啊

package com.img.algorithm;

import java.util.Scanner;

/**
 * @author Bruce
 * @since 1.0
 * 
 */
public class CheckJavaName {

	public static void main(String[] args) {
		Scanner sca = new Scanner(System.in);
		String name = sca.next();
		
		String result = checkJavaName(name);
		System.out.println(result);
	}
	
	/**
	 * @param variable name of java 
	 * @return true if name is acceptable else return false
	 */

	private static String checkJavaName(String name)
	{
		//the variable could not be null or empty and ""
		if(name == null || name.length() == 0 || name.trim() == "")
			return "Variable of java could not empty , null or \"\"!";
		
		//check the first character
		char first = name.charAt(0);
		if(!isFirstChar(first))
		{
			return "The first character of java variable is invalid!";
		}
		
		//check the content of the name after the first character
		for(int i = 1; i < name.length(); i++){
			char c = name.charAt(i);
			if((!Character.isLetterOrDigit(c)) && (c != '_'))
				return "The remaining content contains invalid characters";		}
		
		return null;
		
	}
	
	/**
	 * @param A character
	 * @return true if the char contains in the list else return false
	 */
	private static boolean isFirstChar(char c)
	{
		switch(c){
		case 'A': return true;
		case 'B': return true;
		case 'C': return true;
		case 'D': return true;
		case 'E': return true;
		case 'F': return true;
		case 'G': return true;
		case 'H': return true;
		case 'I': return true;
		case 'J': return true;
		case 'K': return true;
		case 'L': return true;
		case 'M': return true;
		case 'N': return true;
		case 'O': return true;
		case 'P': return true;
		case 'Q': return true;
		case 'R': return true;
		case 'S': return true;
		case 'T': return true;
		case 'U': return true;
		case 'V': return true;
		case 'W': return true;
		case 'X': return true;
		case 'Y': return true;
		case 'Z': return true;
		case 'a': return true;
		case 'b': return true;
		case 'c': return true;
		case 'd': return true;
		case 'e': return true;
		case 'f': return true;
		case 'g': return true;
		case 'h': return true;
		case 'i': return true;
		case 'j': return true;
		case 'k': return true;
		case 'l': return true;
		case 'm': return true;
		case 'n': return true;
		case 'o': return true;
		case 'p': return true;
		case 'q': return true;
		case 'r': return true;
		case 's': return true;
		case 't': return true;
		case 'u': return true;
		case 'v': return true;
		case 'w': return true;
		case 'x': return true;
		case 'y': return true;
		case 'z': return true;
		case '_': return true;
		case '$': return true;
		}
		return false;
	}

}



注释:对于函数isFirstChar的实现有没有更加简单的实现呢?这里的时间复杂度是O(1)
分享到:
评论

相关推荐

    Java环境变量配置

    配置完成后,可以通过以下两种方式验证Java环境变量是否正确配置: 1. **运行`javac -help`**:如果能够显示帮助信息,则表示`javac`已经可以被正确识别。 2. **运行`java -version`**:如果能够显示正确的Java...

    微信支付java版V3验证数据合法性(Deom)

    微信支付Java版V3验证数据合法性是确保与微信支付接口交互过程中安全性的重要步骤。这个过程主要包括三个关键环节:解析微信回调数据、解析微信返回的XML数据以及验证微信返回签名的合法性。 1. **解析微信回调数据...

    java邮箱登陆界面

    8. **用户输入验证**: 在处理用户输入前,应检查其是否为空,格式是否正确(如邮箱地址是否合法)。可以使用正则表达式进行简单验证。 9. **安全考虑**: 存储和处理密码时,应避免明文存储,而应使用加密算法。在...

    深入java虚拟机笔记

    - **第四趟:符号引用的验证**:验证方法和字段的引用是否合法。 - **二进制兼容(编译时)**:确保新旧版本间的兼容性。 - **Java虚拟机内置的安全特性**:JVM提供了许多内置的安全特性,例如权限检查、动态代码...

    使用Java正则表达式实现一个简单的邮箱地址验证.txt

    通过定义一个名为`EmailValidator`的类,并在其内部使用Java标准库中的`Pattern`和`Matcher`类,我们能够轻松地验证用户输入的邮箱地址是否符合标准格式。 #### 代码解析 ##### 1. 导入必要的包 ```java import ...

    java如何设置JAVA_HOME,path,classpath及其作用

    3. 输入`javac`或`java`,确认这两个命令是否合法。 #### 小结 正确配置`JAVA_HOME`、`path`和`classpath`对于搭建Java开发环境至关重要。这些环境变量不仅简化了开发过程中的路径引用,提高了系统的兼容性和稳定...

    Java-计算器源码.zip

    10. **代码规范**:遵循良好的编程实践,如使用有意义的变量名、适当的注释、合理的缩进和空格,这些都有助于提高代码的可读性和可维护性。 以上就是Java计算器源码涉及的主要知识点,通过研究这个源码,初学者可以...

    Java开发注意事项

    遵循标准的命名约定,如变量名采用驼峰命名法(camelCase),类名首字母大写且为名词形式,方法名也采用驼峰命名法但首字母小写等,可以使代码更加清晰,易于理解和调试。 #### 二、异常处理 Java提供了强大的异常...

    java开发一个小型用户管理系统

    1. **Java基础**: 首先,你需要熟悉Java语言的基本语法,包括类、对象、变量、数据类型、控制结构(如if-else,for,while循环)、函数等。这是任何Java项目的基础。 2. **面向对象编程** (OOP): Java是一种面向...

    java反编译器.zip

    2. **反编译质量**:不同的反编译器生成的源代码质量不同,有些可能会丢失注释和原始变量名,甚至可能导致语法不清晰。 3. **混淆代码**:如果原代码经过混淆处理,反编译后的结果可能难以理解,因为混淆会改变变量...

    Java所有知识要点

    - 使用 `java -version` 和 `javac -version` 命令来验证 JDK 是否正确安装。 #### 三、编写第一个 Java 程序 **示例代码** ```java public class Test { public static void main(String[] args) { System.out....

    学校上课使用的java简单教程

    标识符则遵循一定的命名规则,如类名通常首字母大写,方法名首字母小写,常量全大写,变量名首字母小写,避免使用美元符号$作为标识符的一部分。 【Java的基本数据类型】 Java的数据类型分为两大类:原始类型(基本...

    windows系统Java JDK8安装包

    总之,Windows系统下的Java JDK8安装包是Java开发者必不可少的工具,通过合理的安装和配置,开发者可以充分利用Java的强大功能进行后端开发。同时,结合Apache等开源工具,可以构建出高效、稳定的后端服务。

    华为JAVA培训讲义

    - 加载阶段会验证类文件的有效性和合法性。 - 字节码验证器检查字节码是否符合规范。 - 动态链接和类型检查进一步增强了安全性。 #### 七、Java源代码编写与执行 示例代码如下: ```java package mypack; public ...

    华为java内部培训讲义

    这一步非常重要,因为其他环境变量的设置通常依赖于JAVA_HOME的值。 - **CLASSPATH**: 指定Java运行时查找类路径的地方,通常包括JDK自带的一些类库以及第三方类库。 - **PATH**: 指定系统搜索可执行文件的路径,...

    使用Java单例模式实现一个简单的登录验证系统.txt

    ### 使用Java单例模式实现一个简单的登录验证系统 #### 登录验证系统概述 本文档将详细介绍如何使用Java语言结合单例设计模式实现一个简单的登录验证系统。登录验证系统是现代软件应用中的基本功能之一,它负责...

Global site tag (gtag.js) - Google Analytics