正文
java标识符测试代码 java标识符号
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
编写一个程序,判断一个字符串是否是合法的Java标识符;
public static boolean isJavaIdentifier(String input) {
if (input != null input.length() 0) {
int pos = 0;
if (Character.isJavaIdentifierStart(input.charAt(pos))) {
while (++pos input.length()) {
if (!Character.isJavaIdentifierPart(input.charAt(pos))) {
return false;
}
}
return true;
}
}
return false;
}
除了isJavaIdentifierStart()和isJavaIdentifierPart()配合使用判断标识符之外,还可以根据标识符的定义,借助正则表达式来判断是否是标识符
用java编写程序实现判断及识别标识符的功能
这个是java标识符测试代码我做编译原理词法分析用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 需要标识符
写java时经常因为大意总是出现“需要标识符”这个错误java标识符测试代码,下面进行一个代码案例分析如果避免这个错误:
1、提示“需要标识符”错误如图:
2、当前Java代码java标识符测试代码,如图:
3、分析错误原因java标识符测试代码,就是在写完class后直接写java标识符测试代码了应该写在main函数里java标识符测试代码的代码了。
4、解决方法就是在写入其它代码之间,别忘了加入 public static void main(String[] args){}
java中提示需要标识符。。。求高手帮忙解答!!!下面是代码。。
修改
public class dg {
public static void main(String[] args) {
int m = 100;
int he = dg(m);
System.out.println("1加到100是"+he);
}
static int dg(int i) {
int sum = 0;
if (i != 1) {
sum = i + dg(i - 1);
}else{
return 1;
}
return sum;
}
}
关于java标识符测试代码和java标识符号的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。