gpt4 book ai didi

java - 使用 split 方法分割字符串

转载 作者:行者123 更新时间:2023-11-30 06:25:11 25 4
gpt4 key购买 nike

  1. 用户可以通过屏幕提示输入位置来指定他们想要导入的 .txt 文件所在的位置(该位置存储在字符串“importFile”中,该字符串是使用键盘扫描仪填充的)。
  2. 然后使用扫描仪“fileReader”扫描文件内容。

    String importFile = "";     
    File Fileobject = new File(importFile);
    Scanner fileReader = new Scanner(Fileobject);

    while(fileReader.hasNext())
    {
    importFile = fileReader.next();
    String [] splitText = importFile.split("[-\\s]");
    System.out.println(splitText[0]);
    }

但是,我在正确分割文本文件中的数据时遇到了一些麻烦...

文本文件中的每一行文本的格式如下:

abcd - efgh - 12.34 - ijkl - mnop 

文本分割后应采用如下格式:

abcd
efgh
12.34
ijkl
mnop

我希望文本在分割后存储在数组“splitText”中,因此例如“abcd”将位于 splitText[0] 等中,尽管整个字符串被放入 splitText[0 ] 即使在被分割后 - 屏幕截图如下( here

最佳答案

您的问题是多方面的:

  1. 通过使用 Scanner.next(),您一次读取文件中以空格分隔的字段,而您希望逐行读取。请改用 Scanner.nextLine() 修复此问题。

  2. 正如 @YCF_L 首先观察到的,您使用的分隔符正则表达式不适合您的特定任务。您可以使用多种变体,但 YCF_L 的变体清晰明确:"\\s*-\\s*"

  3. 拆分输入后,仅打印结果字段中的第一个字段。您这样做大概是为了解决问题 (1)。

将它们放在一起,完成您想要的工作的读取循环可能看起来更像这样:

    while(fileReader.hasNext()) {
String line = fileReader.nextLine();
String[] splitText = line.split("\\s*-\\s*");

for (String field : splitText) {
System.out.println(field);
}
}

关于java - 使用 split 方法分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47314594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com