将具有随机行数的字符串保存到单行数组 JAVA
Save String with random number of lines to single line array JAVA
这里是从文件中读取的方法,然后通过@符号拆分信息。这是文本文件中新月份开始的地方
public static String readPurchaseOrder(Scanner sc) {
final String DELIMITER = "@";
try {
while (sc.hasNext()) {
sc.useDelimiter(DELIMITER);
String data = sc.next();
return data;
}
} catch (Exception e) {
System.out.println(e);
}
sc.close();
return null;
}
文本文件包含以下显示的第 12 个月的信息
04/01/12#PNW-1234#PA/1234#10
15/01/12#BSE-5566#bT/4674#5@
08/02/12#PNE-3456#Xk/8536#1@
07/03/12#PEA-4567#ZR/7413#3
09/03/12#ESE-6329#HY/7195#30@
03/04/12#ESE-5577#LR/4992#12
23/04/12#PNW-1235#HY/7195#2@
09/05/12#ESE-6329#PV/5732#6
25/05/12#BSE-5566#PV/5732#10@
08/06/12#PNE-3457#kD/9767#1
31/06/12#EMI-6329#ZR/7413#10@
03/07/12#EMI-6329#PV/5732#12
25/07/12#BSE-5566#bT/4674#5@
我正在使用它来输出由@[=15=]分割的文件中的信息
for (int i = 0; i <12; i ++){
String str[] = InputFileData.readPurchaseOrder(sC).split("\n");
for(String s : str){
System.out.println(s);
}
它输出这样的数据
04/01/12#PNW-1234#PA/1234#10
15/01/12#BSE-5566#bT/4674#5
08/02/12#PNE-3456#Xk/8536#1
07/03/12#PEA-4567#ZR/7413#3
09/03/12#ESE-6329#HY/7195#30
03/04/12#ESE-5577#LR/4992#12
23/04/12#PNW-1235#HY/7195#2
09/05/12#ESE-6329#PV/5732#6
25/05/12#BSE-5566#PV/5732#10
我想将每一行存储在一个数组中,这样我就可以进一步将该行拆分为其各自的变量
如果您想将结果收集到一个数组中,每个数组元素一行,最简单的方法是使用列表(因为您事先不知道行数),并且然后将其转换为数组。数组的大小必须提前声明,所以如果你不知道它有多大,你想使用更灵活的数据结构。
public static String[] readPurchaseOrder(Scanner sc) {
final String DELIMITER = "@";
List<String> results = new ArrayList<>();
try {
while (sc.hasNext()) {
sc.useDelimiter(DELIMITER);
String data = sc.next();
results.add(data); // add the line to the list
}
} catch (Exception e) {
System.out.println(e);
}
sc.close();
// convert the list to an array and return it.
return results.toArray(new String[results.size()]);
}
这里是从文件中读取的方法,然后通过@符号拆分信息。这是文本文件中新月份开始的地方
public static String readPurchaseOrder(Scanner sc) {
final String DELIMITER = "@";
try {
while (sc.hasNext()) {
sc.useDelimiter(DELIMITER);
String data = sc.next();
return data;
}
} catch (Exception e) {
System.out.println(e);
}
sc.close();
return null;
}
文本文件包含以下显示的第 12 个月的信息
04/01/12#PNW-1234#PA/1234#10
15/01/12#BSE-5566#bT/4674#5@
08/02/12#PNE-3456#Xk/8536#1@
07/03/12#PEA-4567#ZR/7413#3
09/03/12#ESE-6329#HY/7195#30@
03/04/12#ESE-5577#LR/4992#12
23/04/12#PNW-1235#HY/7195#2@
09/05/12#ESE-6329#PV/5732#6
25/05/12#BSE-5566#PV/5732#10@
08/06/12#PNE-3457#kD/9767#1
31/06/12#EMI-6329#ZR/7413#10@
03/07/12#EMI-6329#PV/5732#12
25/07/12#BSE-5566#bT/4674#5@
我正在使用它来输出由@[=15=]分割的文件中的信息
for (int i = 0; i <12; i ++){
String str[] = InputFileData.readPurchaseOrder(sC).split("\n");
for(String s : str){
System.out.println(s);
}
它输出这样的数据
04/01/12#PNW-1234#PA/1234#10
15/01/12#BSE-5566#bT/4674#5
08/02/12#PNE-3456#Xk/8536#1
07/03/12#PEA-4567#ZR/7413#3
09/03/12#ESE-6329#HY/7195#30
03/04/12#ESE-5577#LR/4992#12
23/04/12#PNW-1235#HY/7195#2
09/05/12#ESE-6329#PV/5732#6
25/05/12#BSE-5566#PV/5732#10
我想将每一行存储在一个数组中,这样我就可以进一步将该行拆分为其各自的变量
如果您想将结果收集到一个数组中,每个数组元素一行,最简单的方法是使用列表(因为您事先不知道行数),并且然后将其转换为数组。数组的大小必须提前声明,所以如果你不知道它有多大,你想使用更灵活的数据结构。
public static String[] readPurchaseOrder(Scanner sc) {
final String DELIMITER = "@";
List<String> results = new ArrayList<>();
try {
while (sc.hasNext()) {
sc.useDelimiter(DELIMITER);
String data = sc.next();
results.add(data); // add the line to the list
}
} catch (Exception e) {
System.out.println(e);
}
sc.close();
// convert the list to an array and return it.
return results.toArray(new String[results.size()]);
}