2016-11-17 72 views
-2

帮助搜索一个数组列表,我需要使用split.indexof来读取一个数组列表文件中的一行()函数,这是我已经写把文件放到一个数组使用分离功能

import java.io.*; //For printwriter. 
import java.util.*; //for scanner. 
import javax.swing.*; //for JOption Pane. 
public class dates 


{public static void main(String[] args) throws IOException 
{ 
//Ask user for birthday variables. 
String userMonth; 
userMonth = JOptionPane.showInputDialog("Please enter your birthday month ex: January"); 
String userDay; 
userDay = JOptionPane.showInputDialog("Please enter your birthday day, ex: 5, or 24."); 
Eventday(userMonth,userDay); 
System.exit(0); 
} 
private static void Eventday(String userMonth, String userDay) throws IOException{ 


    Scanner s = new Scanner(new File("\\Users\\user name\\Desktop\\eclipes\\famous date\\src\\famous dates.txt")); 
ArrayList<String> list = new ArrayList<String>(); 
while(s.hasNext()) 
{ 
list.add(s.nextLine()); 
}s.close(); 
} 
} 
代码

这是文件看怎么样

January, 1, (print the first line) January, 2, (print the second line) January, 3, (print the third line)

我想打印的用户输入行基地:生日月份和日期?

+0

这是否编译? –

+2

使用适当的格式,它会更容易阅读和解决。 – Squiddie

+0

你的意思是你希望程序仅打印指定日期的事件? – aleb2000

回答

0

为了解决这个问题,你必须先传递给File构造一个有效的路径,然后分割字符串,以获得您想要的事件:我还没有测试的代码,但

import java.io.*; //For printwriter. 
import java.util.*; //for scanner. 
import javax.swing.*; //for JOption Pane. 
public class dates { 
    public static void main(String[] args) throws IOException { 
     //Ask user for birthday variables. 
     String userMonth; 
     userMonth = JOptionPane.showInputDialog("Please enter your birthday month ex: January"); 
     String userDay; 
     userDay = JOptionPane.showInputDialog("Please enter your birthday day, ex: 5, or 24."); 
     Eventday(userMonth,userDay); 
     System.exit(0); 
    } 

    private static void Eventday(String userMonth, String userDay) throws IOException{ 

     File file = new File("famous dates.txt"); 
     if(!file.exists())return; 
     Scanner s = new Scanner(file); 
     ArrayList<String> list = new ArrayList<String>(); 
     while(s.hasNext()) { 
      list.add(s.nextLine()); 
     } 
     s.close(); 

     for(String event : list) { 
      String[] data = event.split(", "); 
      if(data[0].equalsIgnoreCase(userMonth) && data[1].equalsIgnoreCase(userDay)) 
       System.out.println(data[2]); 
     } 
    } 
} 

但它应该工作如预期。

+0

谢谢你的帮助,祝福pimpvader – pimpvader