【问题标题】:Obtaining a String Between quotations获取引号之间的字符串
【发布时间】:2016-03-02 01:10:30
【问题描述】:
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

我如何实现这一目标?我尝试使用子字符串,但每次都会出错。

【问题讨论】:

  • 如果没有引号会发生什么?还是空行?
  • 为什么你的writer.println 在循环之外?
  • 如何更改扫描仪中的分隔符。例如scanner.useDelimiter("\\"*\\s+");

标签: java file-io printwriter


【解决方案1】:

我不确定这是否是您遇到的错误,但我认为是,我认为您遇到了错误,因为子字符串试图找到一个 " 但在某些行上找不到,因为它不存在并且这会导致错误,因此您可以做的是用 if 语句包围 movie = substring(... 以检查“标题”是否包含“,您可以这样做 if(title.contains(" \"")) 也应该将 writer.println 放在for循环

【讨论】:

    猜你喜欢
    • 2021-04-18
    • 1970-01-01
    • 2021-10-20
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    相关资源
    最近更新 更多