2016-03-02 4 views
0
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.PrintWriter; 
import java.util.ArrayList; 
import java.util.Scanner; 

public class excersie2 
{ 
    @SuppressWarnings("resource") 
    public static void main(String[] args) throws FileNotFoundException 
    { 

    ArrayList<String> titles = new ArrayList<String>(); 
    ArrayList<String> titlestwo = new ArrayList<String>(); 

    String path = "C:\\Users\\T-450s\\Desktop\\showtimes.txt"; 
    File showtimes = new File(path); 

    Scanner fileReader = new Scanner(showtimes); 

    PrintWriter writer = new PrintWriter("C:\\Users\\T-450s\\Desktop\\output.txt"); 
    while(fileReader.hasNextLine()) 
    { 
     titles.add(fileReader.nextLine()); 
    } 

    String movie = ""; 
    for(String title : titles) 
    { 
     movie = title.substring((title.indexOf("\"")+1), title.lastIndexOf("\"")); 
    } 

    writer.println("\n" + movie); 
    writer.close(); 
} 
} 

Считывает следующий TXT файл:Получение строки между котировками

Now Showing 

Title: "Deadpool" 

Duration: 1 hr 48 mins 

Title: "Zoolander" 

Duration: 1 hr 42 mins 

Title: "Kung Fu Panda 3" 

Duration: 1 hr 35 mins 

and writes a new file containing: 

Deadpool 

Zoolaner 

Kung Fu Panda 3 

Как этого добиться? Я пытался использовать подстроку, но каждый раз получал ошибку.

+0

Что бы там ни было, никаких кавычек? или пустые строки? –

+0

Почему ваш 'writer.println' выходит за пределы цикла? –

+0

Как насчет смены измерителя в сканере. например scanner.useDelimiter ("\\" * \\ s + "); –

ответ

2

Я не уверен, что это ошибка, которую вы получаете, но я предполагаю, что это так, я думаю, что вы получаете ошибку, потому что подстрока пытается найти «но не может на некоторых строках, потому что она не существует и это приведет к ошибке, так что вы можете сделать это, чтобы окружить movie = substring(... С помощью инструкции if, чтобы проверить, содержит ли «заголовок» значение «, вы можете сделать это так: if(title.contains(" \"")) также вы должны поместить writer.println в цикл for