不废话,上题

RainSmall 2009-12-20 07:51:02

import java.util.regex.*;
import net.mindview.util.TextFile;

public class JGrep {
public static void main(String[] args) throws Exception {
if(args.length < 2) {
System.out.println("Usage: java JGrep file regex");
System.exit(0);
}
Pattern p = Pattern.compile(args[1]);
// Iterate through the lines of the input file:
int index = 0;
Matcher m = p.matcher("");
for(String line : new TextFile(args[0])) {
m.reset(line);
while(m.find())
System.out.println(index++ + ": " +
m.group() + ": " + m.start());
}
}
}

java编程思想里的一道例题
TextFile读入所有的行后,并存储在一个ArrayList中。
编译完成后
java JGrep "\\b[Ssct]\\w+"
反复测试总是出现
Usage: java JGrep file regex
args.length>2啊,为什么?!?各位看一下
...全文
119 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunnylyy 2009-12-20
  • 打赏
  • 举报
回复
估计楼主是按C语言的思路来编的程序。
c和java不一样, C语言的命令行参数中文件名是第一个参数arg[0]
Jane_m 2009-12-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jacktanlikejava 的回复:]
这种问题也上?动动脑子再上题
[/Quote]
呵呵,不太赞同你的观点,不会就问嘛,有时间就给人家解决解决。
jacktanlikejava 2009-12-20
  • 打赏
  • 举报
回复
这种问题也上?动动脑子再上题
xllee 2009-12-20
  • 打赏
  • 举报
回复
"\\b[Ssct]\\w+" 就是一个参数,length=1<2
自己测试一下
system.out.println(args.length);
Jane_m 2009-12-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jane_m 的回复:]
你在命令行运行这个程序时要遵照这个要求
useg: java JGrep file regex
其中:
java是运行命令
file 是你要匹配的文件所在的目录
regex 是你要匹配的正则表达式,也就是你的“\\b[Ssct]\\w+”

[/Quote]
补充一下:file是args[0], regex是args[1]
Jane_m 2009-12-20
  • 打赏
  • 举报
回复
你在命令行运行这个程序时要遵照这个要求
useg: java JGrep file regex
其中:
java是运行命令
file 是你要匹配的文件所在的目录
regex 是你要匹配的正则表达式,也就是你的“\\b[Ssct]\\w+”
possibleonline 2009-12-20
  • 打赏
  • 举报
回复
很显然只传了个参数
justinavril 2009-12-20
  • 打赏
  • 举报
回复
或者直接把这段if块注释掉
 //if(args.length < 2) {
//System.out.println("Usage: java JGrep file regex");
//System.exit(0);
// }
justinavril 2009-12-20
  • 打赏
  • 举报
回复
java JGrep是运行这个java程序

试试,b和c以及之前的 都用空格分开
java JGrep \\b[Ssct]\\w+ b c 
RainSmall 2009-12-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 justinavril 的回复:]
String[] args是数组  "\\b[Ssct]\\w+"只是一个元素  所以就走了if这条分支
[/Quote]
"\\b[Ssct]\\w+"的前边不是还有一个JGrep吗
给出具体修改
justinavril 2009-12-20
  • 打赏
  • 举报
回复
String[] args是数组 "\\b[Ssct]\\w+"只是一个元素 所以就走了if这条分支

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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