Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JAVA合法标识符

JAVA合法标识符

作者头像
全栈程序员站长
发布于 2022-09-08 02:29:37
发布于 2022-09-08 02:29:37
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

Java语言中,对于变量,常量,函数,语句块均有名字,我们统统称之为Java标识符.

标识符是用来给类、对象、方法、变量、接口和自定义数据类型命名的。

标识符组成

Java标识符由数字,字母和下划线(_),美元符号($)组成。此处的字母并不局限于26个英文字母,而且可以包含中文字符、日文字符等。Java语言支持Unicode6.2.0字符集,因此Java的标识符可以使用Unicode6.0.0所能表示的多种语言的字符。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。标识符不能包含空格;只能包含美元符号($),不能包含@、#等其他特殊字符。

根据以上几点,自己写的Java标识符判断函数并不能AC SDUT OJ的3328,郁闷呀(o´・ェ・`o)到现在还没想到哪里我还没考虑到(数字、字母、符号、关键字都考虑了呀,甚至都想到Unicode字符集了○| ̄|_)

后来了解到有Java自带的函数来判断。

AC代码(注释后来加上去的)如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{
	
	public static boolean valid(String str)
	{
		if(Character.isJavaIdentifierStart(str.charAt(0)))
			// 如果第一个字符是Java合法的标识符,进入if语句
		{
			for(int i=1; i<str.length(); i++)
				// 从第二个标识符开始,逐个遍历
			{
				if(!Character.isJavaIdentifierPart(str.charAt(i)))
					// 如果第i个标识符不是Java的合法标识符,返回false
				{
					return false;
				}
			}
			// 如果标识符是合法的Java标识符,返回true
			return true;
		}
			// 如果第一个字符不是Java合法的标识符,返回false
		return false;
	}
	public static void main(String[] args) throws IOException  {
		/*
		 * BufferedReader对象只将回车看作输入结束
		 * Scanner对象把回车,空格,tab键都看作输入结束 
		 */
		 BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
		 String text = buffer.readLine();
		 // 先读取一行字符串
		 while(text != null){
			// 读取的字符串为空,则结束循环
			System.out.println(valid(text));
				
			text = buffer.readLine();
		}
	}
}
代码语言:javascript
代码运行次数:0
运行
复制

SDUT OJ的3328题目如下:

JAVA判断合法标识符

Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^

题目描述

输入若干行字符串,判断每行字符串是否可以作为JAVA语法的合法标识符。

输入

输入有多行,每行一个字符串,字符串长度不超过10个字符,以EOF作为结束。

输出

若该行字符串可以作为JAVA标识符,则输出“true”;否则,输出“false”。

示例输入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
abc
_test
$test
a 1
a+b+c
a’b
123
变量

示例输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
true
true
true
false
false
false
false
true

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157077.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
习题:标识符判断
关于C语言标识符,这道2017年上海市高等学校计算机等级考试二级C三套试卷其中一套最后一道编程大题,我们来讲解下:
用户6755376
2020/03/19
5450
习题:标识符判断
541. Reverse String II(反转字符串 II)
题目地址:https://leetcode.com/problems/reverse-string-ii/description/
砖业洋__
2023/05/06
1790
541. Reverse String II(反转字符串 II)
HDU - 2024 C语言合法标识符
C语言标识符是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义,标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1,prog_to。
种花家的奋斗兔
2020/11/12
7030
java 键盘输入多种方法
一、java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象。常用的类有BufferedReader,Scanner。 实例程序: 1、利用 Scanner 实现从键盘读入integer或float 型数据
全栈程序员站长
2022/09/08
7610
Java IO学习笔记八
文章目录 1. BufferedReader和BufferedWriter 1.1. BufferedReader 1.1.1. 构造函数 1.1.1.1. 实例 1.1.2. 常用方法 1.1.2.1. 实例 1.2. BufferedWriter 1.2.1. 构造函数 1.2.2. 常用函数 1.2.3. 实例 1.3. 综合实例 1.4. 参考文章 BufferedReader和BufferedWriter 这两个类是高效率的提高文件的读取速度,它们为字符输入和输出提供了一个缓冲区,可以显著
爱撒谎的男孩
2019/12/31
4110
HDOJ 2024 C语言合法标识符
Problem Description 输入一个字符串,判断其是否是C的合法标识符。
谙忆
2021/01/20
4590
剑指Offer(四十九)-- 把字符串装换为整数
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。数值为0或者字符串不是一个合法的数值则返回0
秦怀杂货店
2022/02/15
3180
剑指Offer(四十九)-- 把字符串装换为整数
挖新坑—Java
只记录Java最入门的内容,模块并不完整,更深入的知识在Java基础、Java提高、JavaWeb模块
用户6948990
2025/04/03
720
挖新坑—Java
Contest1620 – 2020-2021-2学期《Java Web 系统开发》:java基础:字符串
对输入的字符串进行遍历,charAt访问string字符串字符,大写英文字母字符65-90;小写英文字符97-122,要记住。java字符串可以直接拼接,并且string拼接后的字符串其实是jvm中新的一个字符串,这也是为什么使用太多字符串常量消耗空间,这里说多了。直接判断后进行拼接即可,输出str2。
废江_小江
2022/09/05
3430
Contest1620 – 2020-2021-2学期《Java Web 系统开发》:java基础:字符串
几道 BAT 算法面试中经常问的「字符串」问题
题目来源于 LeetCode 第 125 号问题:验证回文串。这道题目是 初级程序员 在面试的时候经常遇到的一道算法题,而且面试官喜欢面试者手写!
五分钟学算法
2019/05/06
8490
几道 BAT 算法面试中经常问的「字符串」问题
正则表达式规则
注意:为了使Java编译器识别,在以“\”开始的字符串定义中必须再加上一个“\”,说明跟随的是正则表达式对字符的定义符。正则表达式必须用双括号括起来。
卡尔曼和玻尔兹曼谁曼
2019/01/25
5760
Java基本语法练习
1.编写程序,求100以内的全部素数。 实验源码: public class FirstClass { public static void main(String[] args) { int iTemp; //临时标记变量 System.out.print("100以内的素数为:"); for(int i = 2; i <= 100; i++) { iTemp = 1; for(int j = 2; j <=
lizelu
2018/01/12
1.5K0
06:合法 C 标识符
06:合法 C 标识符 总时间限制:1000ms内存限制:65536kB描述。 C语言标识符要求: 1. 非保留字; 2. 只包含字母、数字及下划线(“_”)。 3. 不以数字开头。 输入一行,包含一个字符串,字符串中不包含任何空白字符,且长度不大于20。输出一行,如果它是C语言的合法标识符,则输出yes,否则输出no。样例输入 RKPEGX9R;TWyYcp 样例输出 no 来源北京大学 计算概论 06 心理及信管 期末考试 1 #include<iostream> 2 #include<cstdio
attack
2018/04/03
1.2K0
开心档之Java 为 I/O
Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。
iOS Magician
2023/03/21
3360
Java语言
Java分为3个体系,为JavaSE,JavaEE,JavaME,是一种面向对象的程序设计语言,记住Oracle公司收购了 Sum公司,然后Oracle公司就负责了Java语言的维护。
达达前端
2019/07/03
1.9K0
Java语言
Java标识符与关键字
1.Java注释 ☞编码加上注释!!!!  ● 单行注释:// 注释内容 (最常用)  ● 多行注释:/* 注释内容 / (不推荐)  ● 文档注释:/* 文档注释 */ (常见于方法和类之上描述方法和类的作用),可自动生成文档 2.Java标识符 Java中,对于变量、常量、函数、语句块都有名字,统称为Java标识符。 ◆对标识符的三点要求:  ●标识符由字母、数字、_(下划线)、$组成,不能以数字开头,不能用Java中的关键字  ●标识符采用有意义的简单命名  ●“$”不要在代码中出现 ◆驼峰命名法: 大驼峰:定义类、接口时使用   单词以大写字母开头,若有多个单词,每个单词首字母大写      public class FirstClass 小驼峰:定义变量、函数时使用   若标识符只有一个单词,全小写;若标识符由多个单词组成,从第二个单词开始首字母大写     int mathScore = 10 常量:所有单词全部大写,多个单词间以 - 分隔 3.关键字 注意:  ●Java中有两个未使用的保留字:goto、const  ●Java中有三个特殊含义的单词:null、ture、false  ●JDK1.4后追加了 assert关键字;JDK1.5以后追加了enum关键字  4.数据类型划分 注意:对数据类型的选择  ●在程序开发之中,整数就用int,描述小数用double。  ●long一般用于描述日期、时间、内存或文件大小(字节)  ●如果要进行编码转换或者进行二进制流的操作,使用byte(-127~128)  ●char一般在描述中文中会用到(基本忽略)   4.1 基本数据类型(八大基本类型) 4.1.1 数值型 整型:默认值0 byte(-128~127)<short < int(-231~231) < long 在Java中,任何一个整型常量都是int类型 当数据类型达到最大值时,换一个保存范围更大的类型来解决数据溢出问题 Java中声明long常量,需要在数字后加 l 或 L 在进行数学计算时,小的数据类型自动转为大的数据类型,大的数据类型变为小的数据类型必须强制类型转换,可能会溢出。(最高位取反) byte(-128~127)与int类型: 当整型常量在byte保存范围中,可以直接赋值给byte变量;常量大小超出byte范围,int变量赋值给byte变量,所有赋值必须强转。
用户7886150
2020/12/02
3690
词法分析程序
程序分为4个关键方法,用户输入方法,读、写文件方法以及词法分析方法。其中词法分析方法是程序的核心。 词法分析程序主要分为两个部分,第一是取词,第二是分析。 取词阶段: 依次取字符串的每一个字符,遇到空字符时停下,将取到的字符合并成一个字符串,送去进行分析阶段。 分析阶段:程序先构建有关键字数组、分隔符数组和运算符数组,通过将取词阶段送来的字符串与各数组中元素进行比较,将字符串分类到相应的类别数组中保存。 词法分析伪代码如下: While (源码字符串没有取完){ Getchar(获取一个非空字符);
SuperHeroes
2018/05/30
1.1K0
java标识符与关键字_4、Java标识符和关键字
标识符:Java对各种变量,方法和类等要素命名时使用的字符序列称为标识符。(凡是自己可以起名的地方都叫标识符,都遵循标识符的规则)
全栈程序员站长
2022/09/08
3540
[oeasy]python051_什么样的变量名能用_标识符_identifier
oeasy
2024/12/11
1360
[oeasy]python051_什么样的变量名能用_标识符_identifier
Java编写的C语言词法分析器
    这是java编写的C语言词法分析器,我也是参考很多代码,然后将核心代码整理起来,准备放在QQ空间和博客上,目的是互相学习借鉴,希望可以得到高手改进。这个词法分析器实现的功能有打开文件、保存文件、打开帮助文档、文本域内容的剪切和复制和黏贴、进行词法分析 程序的项目结构如图,Word类和Unidentifiable类是两个JavaBean类,存放的参数有两个row(整型)、word(String),row用于获取行数,word用于获取标识符,LexerFrame是词法分析器的界面类,Analyze封装了进行词法分析的核心代码 ,doc文件夹放一个帮助文档,当用户点击帮助按钮时可以弹出来以帮助用户使用。 Github项目链接:https://github.com/u014427391/lexer1.1.0,欢迎star //核心程序:
SmileNicky
2019/01/17
1.3K0
相关推荐
习题:标识符判断
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档