「java标识符识别」java 标识符

博主:adminadmin 2023-03-22 19:05:08 697

本篇文章给大家谈谈java标识符识别,以及java 标识符对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用java编写程序实现判断及识别标识符的功能

这个是我做编译原理词法分析用的,可以识别包括,标示符,关键字,常数,变量,操作符,界符等,你先拿去用吧!!

import java.io.FileReader;

//import java.io.FileWriter;

import java.io.IOException;

import java.io.FileOutputStream;

import java.io.OutputStreamWriter;

class Tools{

public final int maxsize=200;

String savwd[]={"main","int","float","char","double","long","return","if","case","switch","break","default","printf","scanf","define","include"};//保留字数组;

char operate[]={'=','','','?','!','+','-','*','/','%','(',')',':'};//操作符数组

char seprate[]={',',';','{','}','"'};//分隔符数组

String doperate[]={"==","+=","-=","=","=","!=","=","+","-","","","!","*","/","%","(",")","++","--","()"};

}

class Monitor{

public int flag;

public String string;

}

public class test {

static Monitor analyste(char array[]){//对读取的窜进行分析

Tools get=new Tools();

Monitor monitor=new Monitor();

int flag=0,numbercount=0;

int countnumber;

for(countnumber=0;array[countnumber]!='\0';countnumber++);

String str=new String(array);

str=str.substring(0,countnumber);

for(int count=0;countget.savwd.length;count++)

if(str.equals(get.savwd[count]))

{

flag=1;

break;

}

if(flag==1){//是否为关键字

monitor.flag=1 ;

}

else if(array[0]='0'array[0]='9'){//判断是否为常量

numbercount=1;

for(int count=numbercount;countstr.length();count++)

if(array[count]='0'array[count]='9')

numbercount++;

if(numbercountstr.length()){//判断是否为错误表示符

monitor.flag=2;

}

else if(numbercount==str.length()){//判断是否是常量

monitor.flag=3;

}

}

else if((array[0]='a'array[0]='z')||(array[0]='A'array[0]='Z')){//判断是否是表示符

monitor.flag=4;

}

monitor.string=str;

return monitor;

}

static boolean iseprate(char o)//判断是否是分割符

{

Tools get=new Tools();

int flag=0;

for(int count=0;countget.seprate.length;count++){

if(o==get.seprate[count]){

flag=1;

break;

}

}

return (flag==1);

}

static boolean isoperate(char c){//判断是否是运算符

Tools get=new Tools();

int flag=0;

for(int count=0;countget.operate.length;count++){

if(c==(get.operate[count])){

flag=1;

break;

}

}

return (flag==1);

}

static Monitor analystoperate(char doubles[])//此函数用于分析操作数组,并返回分析状态值给MONITOR,共输出程序调用

{

int count;

int flag=0;

Tools tl=new Tools();

Monitor temp=new Monitor();

String str=new String(doubles);

for( count=0;doubles[count]!='\0';count++);

str=str.substring(0,count);

for(int i=0;itl.doperate.length;i++){//判断操作符的合法性,并且给MONITOR 设定状态

if(str.equals(tl.doperate[i])){

flag=1;

break;

}

}

temp.flag=flag;

temp.string=str;

return temp;

}

public static void main(String args[])throws IOException{

Tools get=new Tools();

FileReader in=new FileReader("C:\\myjava\\testdata.txt");

FileOutputStream file=new FileOutputStream("C:\\myjava\\result.txt",true);

OutputStreamWriter out=new OutputStreamWriter(file);

int temp;

int flag=0;

char operate[]=new char[get.maxsize];

int operatecount=0;

int operateflag=0;

Monitor result=new Monitor();

Monitor oresult=new Monitor();

char temparray[]=new char[get.maxsize];

System.out.println("符号 名称 说明");

out.write("符号 名称 说明"+"\n");

System.out.println();

while((temp=in.read())!=-1){//读文件

if(temp!=' '!iseprate((char)temp)!isoperate((char)temp)temp!='\n')

temparray[flag++]=(char)temp;

else {

result=analyste(temparray);

char character[]={(char)temp};

String word=result.string;

if(result.flag==1){

System.out.println(word+" 关键字");

out.write(word+" 关键字");

out.write("\n");

}

if(result.flag==2){

System.out.println(word+" 标示符 error");

out.write(word+" 标示符 error");

out.write("\n");

}

if(result.flag==3){

System.out.println(word+" 常量 ");

out.write(word+" 常量 ");

out.write("\n");

}

if(result.flag==4){

System.out.println(word+" 标示符");

out.write(word+" 标示符");

out.write("\n");

}

if(result.flag==5){

System.out.println(word+" 关键字");

out.write(word+" 关键字");

out.write("\n");

}

if(iseprate((char)temp))

{

String s=new String(character);

System.out.println(s+" 分隔符");

out.write(s+" 分隔符");

out.write("\n");

}

if(isoperate((char)temp)){//判断是否是操作符并保存操作符到相应的数组

operate[operatecount++]=(char)temp;

operateflag++;

//continue;

}

else if(operateflag!=0){

oresult=analystoperate(operate);//分析操作符数组

if(oresult.flag==1){//输出正确的操纵符

out.write(oresult.string+" 操作符"+"\n");

System.out.println(oresult.string+" 操作符");

}

else{//输出错误操作符

out.write(oresult.string+" 操作符"+" ERROR"+"\n");

System.out.println(oresult.string+" 操作符"+" ERROR");

}

for(int count=0;countget.maxsize;count++){//操作符数组归零

operate[count]='\0';

}

operateflag=0;

operatecount=0;

}

flag=0;

for(int count=0;countresult.string.length();count++)//标示符数组归零

temparray[count]='\0';

continue;

}

}

System.out.println("分析完毕");

in.close();

out.close();

}

}

/*程序说明:

* 此程序用于简单C语言程序的词法分析,如果想扩大其检索的范围包括语言的种类等等,可在Tools类内部进行扩充文件。

* 此程序有一个弊端,操作符的输出有一定的滞后性,还有待改进

*/

Java标识符 判断以下是否为合法的标识符 并说明原因

(1)不合法,因为char是关键字。(2)合法

(标识符由字母,下划线,$符号和数字组成,并且首字母不能是数字)

(3)合法

(4)不合法,不能有%号

(5)合法

(6)不合法,括号不是合法标识符

(7)合法

,$是合法的标识符

(8)标识符正确,但表达式错误,因为aa是boolean类型,不能赋值为double类型,boolean类型只能赋值为true或者false。

Java初学者:什么是标识符?关键字有哪些?谢谢!

标识符(Identifier):专门用于命名,还可用于类(Class)、方法(Method)等名称上。规则:(1)不可为关键字、符号,以免意义混淆;(2)第一个字符不可以是数字。(3)大小写代表不同意义。    

标识符由字母、数字、下划线“_”、美元符号“$”或者人民币符号“¥”组成,并且首字母不能是数字。

不能把关键字和保留字作为标识符,标识符没有长度限制,标识符对大小写敏感。

标识符是赋予变量、类和方法的名称,可从一个字母、下划线(_)或美元符号($)开始,是大小写区别对待的, 且无最大长度。

JAVA语言对于标识符定义要求: Ⅰ.可以由字母,数字,”_”或者”$”符组成,但是不能以数字开头; Ⅱ.中文可以作为变量名,但是不提倡使用; Ⅲ.Java大小写敏感,严格区分大小写,命名时需要注意; Ⅳ.不能使用Java保留字(一些java语言规定好的,有特殊意义的字符如break,if等)。

JAVA语言中有效标识符和JAVA关键字有什么区别

JAVA语言中有效标识符和JAVA关键字区别为:固定不同、组成不同、遵循风格不同。

一、固定不同

1、有效标识符:有效标识符不固定,是对于变量、常量、函数、语句块的名称标记。

2、关键字:关键字固定,是在所有程序中有特殊意义的文字标记。

二、组成不同

1、有效标识符:有效标识符由字母、数字、_ 、$组成,其中不能以数字开头,不能使用Java中的关键字。

2、关键字:关键字由字母组成,不包含其他数字、@、%、空格等特殊符号。

三、遵循风格不同

1、有效标识符:有效标识符遵循UpperCamelCase 风格,开头第一个字母大写。

2、关键字:关键字遵循lowerCamelCase风格,开头第一个字母小写。

java的语言标识符规则是什么?

Java标识符的命名规则:\x0d\x0a1) 标识符由字母、数字、下划线“_”、美元符号“$”或者人民币符号“¥”组成,并且首字母不能是数字。\x0d\x0a2) 不能把关键字和保留字作为标识符。\x0d\x0a3) 标识符没有长度限制。\x0d\x0a4) 标识符对大小写敏感。Java编程规范:1)类名和接口名:首字母大写,其余字母小写。如SamDoc\x0d\x0a2)方法名和变量名:首字母小写,其余的字母大写。\x0d\x0a如bothEyesOfDoll。\x0d\x0a3)包名:字母全部小写。如,com.abc.dollapp。\x0d\x0a4)常量名:采用大写形式,单词之间以下划线“_”隔开。

什么是java的合法标识符?

Java 的合法标识符是指可以用来标识类、变量或方法的名称。

Java 的合法标识符遵循以下规则:

可以由字母、数字、美元符号 ($) 和下划线 (_) 组成。

不能以数字开头。

不能是 Java 保留字。

举个例子,以下是合法的 Java 标识符:

counter

hello_world

$amount

而以下是不合法的 Java 标识符:

123abc

for

while

希望这些信息对你有帮助!

java标识符识别的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 标识符、java标识符识别的信息别忘了在本站进行查找喔。