当前位置:首页 > 开发 > 编程语言 > Java > 正文

验证java变量名是否合法

发表于: 2011-08-17   作者:Brucegaochina   来源:转载   浏览次数:
摘要: java中变量的命名规则: [1]$,数字,下划线打头;后面可以是数字,字母,下划线; [2]当然变量自然不能是java中的关键字了(程序中还没做判断) [3]下面是实现的1.0版本,程序还有需要改进的地方,大家不妨指出啊 package com.img.algorithm; import java.util.Scanner; /** * @author Bru
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变量名是否合法

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
在WEB方面,一般来说从前台传来的日期都是经过验证的(日历控件、JS验证等),所以一般就可以直接使
授权即访问控制,它将判断用户在应用程序中对资源是否拥有相应的访问权限。 如,判断一个用户有查看
<script type="text/javascript"> function loadXMLDoc(value,appId) { $.ajax({ type: "POST
<script type="text/javascript"> function loadXMLDoc(value,appId) { $.ajax({ type: "POST
1.测试CE是否启动,测试地址:http://10.55.15.154:9080/FileNet/Engine 如果已经启动,显示以下界面
一年前,从不知道Ajax是什么,伴随着不断的积累,到现在经常使用,逐渐有了深入的认识。今天,如果
使用jQuery实现这个以前用js实现的功能,可以不用使用令人讨厌的alert警告框,而是在页面需要的地方
关键字:正则表达式 模式匹配 Javascript 摘要:收集一些常用的正则表达式。 正则表达式用于字符串
Jquery.Validate是一个相当棒的客户端验证控件,它的功能强大就不必说了,本文主要介绍了它对asp.ne
Jquery.Validate是一个相当棒的客户端验证控件,它的功能强大就不必说了,本文主要介绍了它对asp.ne
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号