怎样从如下txt 文件中把每一个菜名迭代一遍统计打印出来?
每一个菜名前面都是由0到9开始的这样一个规律。其他的不需要管。
打印格式为(菜名:XX).日期,11月16日(星期一),餐别:,午餐
序号,菜名,售卖,重复菜品
1,卤鸡腿,√,
2,粉蒸排骨,√,
3,豆鼓鱼,√,
4,咸烧白,√,
5,土豆烧排骨,√,
6,腊肉豌豆,√,
7,家常豆腐,√,
8,番茄炒蛋,√,
9,青笋木耳肉片,√,
10,牛排,√,
11,豆腐,√,
12,白水茄子,√,
13,土豆丝,,√
14,油菜,,
15,魔芋,√,
16,豆芽,√,
调整菜品,,,
1,白菜,,
2,南瓜,,√
日期,11月17日(星期二),餐别:,午餐
序号,菜名,售卖,重复菜品
1,粉蒸肉,√,
2,卤心舌,,
3,雪豆烧蹄花,√,
4,藕丁炒肉片,√,
5,鱼,,
6,甜椒蒜台盐煎,√,
7,四季豆煸鸡,√,
8,香菇青笋肉片,√,
9,鱼香圆子,√,
10,青笋木耳肉丝,√,
11,血旺,√,
12,花菜,√,
13,油菜,,
14,白油冬瓜,√,√
15,白水茄子,,
16,土豆片,,
调整菜品,,,
1,冒鸭子,,
2,粉,,
3,白菜,,√
4,耳朵,,

解决方案 »

  1.   

    看到这个帖子 我马上就饿了就是一个读文件的过程  观察了一下  有菜名的地方前面是数字和",",后面是","。所以用String的split(",")方法,并返回数组的第2个元素,也就是array[1],就是菜名了。为了提高效率,可以再处理前线判断当前行是否以数字开头。
      

  2.   

    String str=readLine()
    在对String[] ss=str.split(",")
    然后ss[1]就是你要的值
    然后输出来就可以了
    可以先判断if(str.startsWith("日期")||str.startsWith("需要")){
    str=readLine();//继续读,获得下一行
    }
      

  3.   

    上班偷偷写的,格式不对请提出import java.io.*;class  FindCaiMing
    {
    public static BufferedReader br;
    public static File f = new File("D:\\GaoBo\\Java_API&Insance\\Instance\\findCaiMIng\\a.txt");
    public static void main(String[] args) 
    {
    try{
    br= new BufferedReader(new FileReader(f));
    String temp = br.readLine();
    while(temp!=null){
    if(!"".equals(temp)){
    if(Character.isDigit(temp.charAt(0))){
    String x[]=temp.split(",");
    System.out.println("菜名:"+x[0]+"-"+x[1]);
    temp=br.readLine();
    }else{
    System.out.println(temp);
    temp=br.readLine();
    }
    }else{
    System.out.println();
    temp=br.readLine();
    }
    }
    }catch(Exception e){
    e.printStackTrace();
    }finally{
    try{
    br.close();
    }catch(Exception e2){
    e2.printStackTrace();
    }
    }
    }
    }
      

  4.   

    package test;import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStreamReader;public class Test {
    public static void main(String[] args) {
    File f = new File("E://workspace//test//src//a.txt");
    if (f != null) {
    try {
    FileInputStream fis = new FileInputStream(f);
    BufferedReader br = new BufferedReader(new InputStreamReader(
    fis));
    int i = 0;
    while (br.ready()) {
    String line = br.readLine();
    if (i == 0) {
    line = br.readLine();
    line = br.readLine();
    i = 1;
    }
    if (line.startsWith("调整菜品")) {
    break;
    }
    System.out.println(line.substring(line.indexOf(",", 1) + 1,
    line.indexOf(",", 3)));
    }
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    }这个我写的,输出结果:
    卤鸡腿
    粉蒸排骨
    豆鼓鱼
    咸烧白
    土豆烧排骨
    腊肉豌豆
    家常豆腐
    番茄炒蛋
    青笋木耳肉片
    牛排
    豆腐
    白水茄子
    土豆丝
    油菜
    魔芋
    豆芽
      

  5.   

    import java.io.*;public class GetMenu {
    public static String getMenu(String filePath){
    StringBuilder sb = new StringBuilder();

    File menu = new File(filePath);

    try {
    BufferedReader br = new BufferedReader(new FileReader(menu));
    String text;

    while((text=br.readLine()) != null){ 
    if(text.matches("\\d+.*")){
    sb.append(text.split(",")[1]);
    sb.append(",\n");
    }
    }

    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }

    return sb.toString();
    }

    public static void main(String args[]){
    String str = getMenu("C:\\temp\\1.txt");

    System.out.println(str);
    }
    }输入:
    日期,11月16日
    1,卤鸡腿
    2,土豆烧牛肉输出:
    卤鸡腿,
    土豆烧牛肉,