package zuoye13;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class zhuanhuan {
private static final List<List<String>> province = new ArrayList<>();
private static final List<List<String>> sortProvince = new ArrayList<>();
private static String result;
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
String[] split = line.split(" ");
readFileByInFileName(split[0]);
if (split.length == 3) {
//鎸囧畾浜嗚鐨勭渷浠藉悕
String[] strings = result.split("\n");
StringBuilder builder = new StringBuilder();
boolean flag = false;
for (String string : strings) {
int indexOf = string.indexOf("\t");
String substring = indexOf > 0 ? string.substring(0, indexOf) : string;
substring = substring.replace("\"", "").trim();
if (substring.equals(split[2])) {
builder.append(string).append("\n");
flag = true;
} else if (flag) {
break;
}
}
writeFileByFileName(split[1], builder.toString());
} else {
writeFileByFileName(split[1]);
}
}
private static void readFileByInFileName(String fileName) {
//璇诲彇鏂囦欢
try (BufferedReader reader = new BufferedReader(
new FileReader("/Users/rayss/IdeaProjects/JavaCodeReasearch/src/test/java/com/cloud/MainTest/meituan/" + fileName))) {
//鍐欏嚭鏂囦欢
String line;
//鏍囪涓嬩釜浣嶇疆鏄笉鏄渷浼�
//涓嬩釜鏄渷浼氱殑璇濆皢浼氶噸鏂板垱寤轰竴涓柊鐨勯泦鍚�
boolean flag = true;
List<String> element = new ArrayList<>();
//杩欎釜寰幆灏辨槸鑾峰彇鎵�鏈変俊鎭�
while ((line = reader.readLine()) != null) {
if (flag) {
flag = false;
}
//杩欎釜灏辨槸鍒ゆ柇鏄惁鏄渷浼氱殑閫昏緫
if ("".equals(line.trim())) {
province.add(element);
element = new ArrayList<>();
flag = true;
continue;
}
element.add(line);
element.add("\n");
}
} catch (IOException ignored) {
}
//缁欐墍鏈夌渷浼氬紑澶存坊鍔犵渷鍚�
province.forEach(zhuanhuan::appendChar);
province.forEach(list -> list.add(list.size() / 2 + ""));
sort();
System.out.println(sortProvince);
result = province.toString().replace("]", "").replace("[", "").replace(",", "");
}
private static void sort() {
for (int i = 0; i < province.size(); i++) {
int minIndex = i;
for (int j = i + 1; j < province.size(); j++) {
int i1 = Integer.parseInt(province.get(minIndex).get(province.get(minIndex).size() - 1).trim());
int j1 = Integer.parseInt(province.get(j).get(province.get(j).size() - 1).trim());
if (j1 < i1) {
minIndex = j;
}
}
sortProvince.add(province.get(minIndex));
}
}
private static void writeFileByFileName(String outFileName) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("/Users/rayss/IdeaProjects/JavaCodeReasearch/src/test/java/com/cloud/MainTest/meituan/" + outFileName))) {
//鍐欏嚭鏂囦欢
writer.write(result);
//灏嗗唴瀛樹腑鐨勬暟鎹埛鏂板埌纾佺洏
writer.flush();
} catch (IOException ignored) {
}
}
private static void writeFileByFileName(String outFileName, String content) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("/Users/rayss/IdeaProjects/JavaCodeReasearch/src/test/java/com/cloud/MainTest/meituan/" + outFileName))) {
//鍐欏嚭鏂囦欢
writer.write(content);
//灏嗗唴瀛樹腑鐨勬暟鎹埛鏂板埌纾佺洏
writer.flush();
} catch (IOException ignored) {
}
}
private static void appendChar(List<String> list) {
//鐪佷細鍚�
String head;
//浠庝綍澶勫紑濮嬬殑鍙橀噺
int i;
if (list.get(0).trim().equals("")) {
head = list.get(1);
i = 2;
} else {
i = 1;
head = list.get(0);
}
//閬嶅巻娣诲姞
for (; i < list.size(); i++) {
String temp;
if (!(temp = list.get(i)).trim().equals("")) {
list.remove(i);
list.add(i, head + "\t" + temp);
}
}
//绉婚櫎鏈�寮�濮嬬殑鐪佷細
list.remove(0);
}
出现报错Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at zuoye13.zhuanhuan.main(zhuanhuan.java:39)