java 读取文件的问题

有个命名为“123.txt”的文档内容如下所示:1-1-1##-1##-111这个文档从顶端的1排到底端1,现在有两个问题:1.怎么写个java程序求出“#”的个数以及“... 有个命名为“123.txt” 的文档 内容如下所示:

1
-
1
-
1
#
#
-
1
#
#
-
1
1
1

这个文档从顶端的1排到底端1,现在有两个问题:
1.怎么写个java程序 求出“#” 的个数 以及“1”的个数?
2. 算出每个“#”在数组里的位置。

谢谢啦 解决任何一个问题都加分 如果都解决了双倍加分。请写出具体的代码 :) 不要粘贴什么理论哈 谢谢啦
谢谢“ 窗外风雨飘摇 ”的留言
不好意思 自己再补充下 求“#” 的位置是只有“1” 和 “#” 里面的位置不包含“-”。

如果没有更新的话就采纳“ 窗外风雨飘摇 ”的意见了.

求“#” 的位置是只有“1” 和 “#” 里面的位置不包含“-”。如下所示:
1
1
1
#
#
1
#
#
1
1
1

不包含“-”,分别求出“#”在上述表中的位置和比例 呵呵 谢谢哈
展开
 我来答
問猪笑了冇
2010-04-14 · TA获得超过220个赞
知道答主
回答量:108
采纳率:0%
帮助的人:87.8万
展开全部
我也给你写一个版本的,看咋样?
————————————————————————
求“#” 的位置是只有“1” 和 “#” 里面的位置不包含“-”。 这句话要做何解释呢?
————————————————————————
/**
* 因你文件里一个要检索项占单独一行,用Scanner类更方便
* @param args
*/
public static void main(String[] args) {
try {
int i=0,j = 0,line =0 ;
List<Integer> line1 = new ArrayList<Integer>();
List<Integer> line_well = new ArrayList<Integer>();
Scanner s1 = new Scanner(new File("E:\\1.TXT"));
while (s1.hasNext()) {
String s = s1.next();
if (Pattern.compile("\\-").matcher(s).find()) continue;
line++;
if (Pattern.compile("1").matcher(s).find()){i++;line1.add(line);}
if (Pattern.compile("#").matcher(s).find()){j++;line_well.add(line);}
}
System.out.println("共找到 [1] " + i + " 次");
System.out.println("分别出现在 "+Arrays.toString(line1.toArray())+"行");
System.out.println("共找到 [#] " + j + " 次");
System.out.println("分别出现在 "+Arrays.toString(line_well.toArray())+"行");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
窗外风雨飘摇
2010-04-14 · TA获得超过262个赞
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:0
展开全部
//new File("H:\\JavaHomeWork\\ForceR\\test\\123.txt")要改成你的“123.txt”文档位置

public class Main {
public static void main(String[] args) throws Exception{
Scanner sc=new Scanner(new File("H:\\JavaHomeWork\\ForceR\\test\\123.txt"));
//统计"#"出现的次数size()与位置
List<Integer> num1=new LinkedList<Integer>();
//统计"1"出现的次数
int num2=0;
String line=null;
int i=1;
//若存在下一行
while(sc.hasNextLine()){
//读取一行数据
line=sc.nextLine();
//若该行只有一个字符串"#"
if("#".equals(line)){
//添加进统计
num1.add(new Integer(i));
//若该行为一个字符串"1"
}else if("1".equals(line)){
//添加进统计
++num2;
}
++i;
}
System.out.println("统计信息:"+"\n\"#\"出现了"+num1.size()+"次");
System.out.print("分别为");
//for each
for(Integer j : num1){
System.out.print(" "+j);
}
System.out.println("行");
System.out.println("\"1\"出现了"+num2+"次");
sc.close();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式