【发布时间】:2021-11-18 12:32:23
【问题描述】:
所以,我开始学习 Java,同时学习它的乐趣和困惑。
我使用filereader读取一个文件的内容没有问题,并将其输出到另一个文件中,并在字符串中的给定位置输出一个子字符串。 (是的,对于那些知道 EDI 的人,你知道它是一个 VDA 文件)
但是,我想读取一行的开头,然后根据行中的位置输出几个子字符串..
所需的输出: 找到55901,然后Stringname = substringname(5, 12) Stringname = substringname(13, 20)等
这是我读到的Inputstring,每一行都是128 Chars Long̶̶̶̶̶̶̶̶̶̶̶̶̶̶t̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶:
55101BUYX SELLLX 0022200223210924
55201XQ 000897350210924 PARTNUMERXXX ZZ S000000V 0000000000
55301000000000000000000000000000000000000000000I
554012109240000000000462 2109270000000000000 2109280000000000000 2109290000000000000 2109300000000000000 2110010000000000000
554012110040000000000000 2110050000000000000 2110060000000000000 2110070000000000000 0000000000000000000 0000000000000000000
55701 JP010 ASDFGHJK
55901_output000000200000020000004000000000000020000001
这是我目前所拥有的:
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.lang.*;
public class Main {
public static void main(String[] args) throws IOException {
File file = new File("C:\\Users\\Mail\\Desktop\\VDA Reader\\VDA.txt");
Scanner scan = new Scanner(file);
String input = "";
String buyer = "";
//Scan next line if exists
try {
while (scan.hasNextLine()) {
input = input.concat(scan.nextLine() + "\n");
}
}
catch (Exception e){
System.out.println("Error in the code");
}
scan.close();
buyer = input.substring(5, 13);
System.out.println("Buyer "+buyer);
}
}
【问题讨论】:
-
您的问题不清楚。你想以某种方式分割你的线条吗?您是否在整个文件中寻找特定的子字符串?您已经拥有的代码有什么作用?它应该怎么做?
标签: java substring filereader keyword