【问题标题】:How to read a file based on string position and store it in variable如何根据字符串位置读取文件并将其存储在变量中
【发布时间】:2015-03-05 06:16:09
【问题描述】:

我需要完全读取一个文件,然后拆分文件中的字符串,然后使用 Java 将其存储在一个变量中

看下面的例子,我的文本文件包含

devarajan        1000210         08754540275     600019      
ramesh           1000210         08754540275     600019      
udhay            1000210         08754540275     600019    

我厌倦了使用字符串位置,但它不起作用。

请同时找到附加的示例文件。问候

我的代码:

public class Program { 
     public static void main(String[] args) { 
        String line = "devarajan 1000210 08754540275 600019 "; 
        String[] words = line.split("\\W+"); 
        for (String word : words) {
                   System.out.println(word); 
                                  } 
                             }
                       }

输出:

devarajan 1000210 08754540276

我的文件将包含字符串列表 10-10 位置将是名称 20-30 位置将是 empid 30-40 将电话号码。所以当我使用以前的 sn-p 时,我得到了空格“devarajan”“1000210”.. 我应该避免那个空格。

反过来,我的代码在遇到空格而不是位置时会立即拆分 @Twelve,@ Kick:我为您的 sn-p 得到如下输出 但是想象一下,如果我的名字中有空格,例如:“十二美元”而不是“ 十二美元”,那么名称将被拆分并存储在不同的数组位置。这就是原因,我问是否可以根据位置拆分字符串

【问题讨论】:

  • 显示你的代码sn-p!!!比我们可以帮助你
  • 正则表达式时间 :-) 显示代码,我们将提供帮助。
  • Basic I/OString#splitScanner,然后将它们存储在 array 和/或某种 List 或其他 Collection
  • 我是 java 新手,我尝试了一个带有示例字符串的独立 java,它可以工作。但是在完全读取文件并拆分它时,我不知道。 :(
  • 我们完全信任您,但您需要展示您的所作所为以及困扰您的具体问题。作为一名编码员,您应该更具体地了解您的世界正在发生的事情。

标签: java string file-io


【解决方案1】:

只有一种方法..

try {
  Scanner inFile = new Scanner(new File("myInputFile.txt"));
  String[] data;
  ArrayList<String[]> arr = new ArrayList<String[]>();
  while (inFile.hasNext()) {
    data = inFile.nextLine().split("\\s+"); // or split("\t") if using tabs
    System.out.println(Arrays.toString(data));
    arr.add(data);
  }
}

catch (FileNotFoundException fe) {
  fe.printStackTrace();
}

【讨论】:

  • 我不太明白你现在真正的问题是什么
  • 这会成功,您会将整个字符串存储在一个数组中,但问题是 devarajan 1000210 08754540275 600019 ramesh 1000210 08754540275 600019 udhay 1000210 08754540275 600019 在我的示例中位置。 Emp id 将从 20-30 开始,依此类推。我需要将名称单独存储在数组中
  • 不是整个字符串都存储在数组中。 data[0] 包含名称,data[1] 第一个数字等等...
  • @ Kick :我为您的 sn-p 得到如下输出,但如果我的名字中有空格,例如:12 美元而不是 12 美元,则名称将被拆分并存储在不同的阵列位置。这就是原因,我问是否可以根据位置拆分字符串
猜你喜欢
  • 2020-08-11
  • 1970-01-01
  • 1970-01-01
  • 2014-03-29
  • 1970-01-01
  • 1970-01-01
  • 2014-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多