用JAVA来判断C语言合法标识符,实在不知道错在哪里~~

jasonblog 2010-04-18 09:42:44
帮一个朋友看错的地方,但找了好久怎么也找不出来~~自己写一个又是对的,郁闷ing

错误的代码如下,原题地址是:http://acm.hdu.edu.cn/showproblem.php?pid=2024

import java.util.*;
public class Main
{
public static void main(String[] args)
{
String buffer;
Ident a = new Ident();
int n, i;
Scanner keyboard = new Scanner(System.in);
n = keyboard.nextInt();
for (i = 0; i < n; i++)
{
Scanner read = new Scanner(System.in);
buffer = read.nextLine();
if (a.S2(buffer) && a.S1(buffer))
System.out.println("yes");
else
System.out.println("no");
}
}
}
class Ident
{
public Ident() { }
boolean S1(String str)
{
for (int i = 1; i < str.length(); i++)
{
if (!((str.charAt(i) >= 'A' && str.charAt(i) <= 'Z')
|| (str.charAt(i) >= 'a' && str.charAt(i) <= 'z')
|| str.charAt(i) == '_'
|| (str.charAt(i) >= '0' && str.charAt(i) <= '9'))
)
return false;
}
return true;
}
boolean S2(String str)
{
if (
(str.charAt(0) >= 'a' && str.charAt(0) <= 'z')
|| (str.charAt(0) >= 'A' && str.charAt(0) <= 'Z')
|| str.charAt(0) == '_'
)
return true;
else
return false;
}
}
...全文
239 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jasonblog 2010-04-18
  • 打赏
  • 举报
回复
错误是由于输入流错误
nextInt的残留换行符没有处理掉~
jasonblog 2010-04-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 alinchuan 的回复:]

提示 你下 不足的地方 , 你没给出错误提示 , 具体不晓得 那里错了
1 : public class Main 把 Main 改成和你的文件名同名 ;
2 : 在 每个Scanner 之间 加个 输出 println 作为间隔提示 ;
3 : buffer = read.nextLine(); 改成 buffer=new 、String(read.nextLine);
……
[/Quote]

谢谢,不过我已经发现了问题所在
alinchuan 2010-04-18
  • 打赏
  • 举报
回复
提示 你下 不足的地方 , 你没给出错误提示 , 具体不晓得 那里错了
1 : public class Main 把 Main 改成和你的文件名同名 ;
2 : 在 每个Scanner 之间 加个 输出 println 作为间隔提示 ;
3 : buffer = read.nextLine(); 改成 buffer=new 、String(read.nextLine);
4 : 不晓得 要不要加 Scanner.Delimiter(/r/n) 以换行为分隔符 ;
jasonblog 2010-04-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 nuowei521 的回复:]

我只是找出在判断前,没判断是否为空
[/Quote]

恩 这是一个疏漏 不过不是错误的原因
jasonblog 2010-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 nuowei521 的回复:]

说的清楚些,
[/Quote]

就是判断C语言合法标识符 首字符可以为字母或下划线 其它的可以为字母、下划线和数字
nuowei521 2010-04-18
  • 打赏
  • 举报
回复
我只是找出在判断前,没判断是否为空
nuowei521 2010-04-18
  • 打赏
  • 举报
回复
说的清楚些,

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧