1번
"수\t이름\t나이\n" +
"1\t박\t20\n" +
"2\t김\t30\n" +
"3\t이\t40\n" +
"4\t권\t비공개";
2번
"수\t상호명\t좌표\t지역\n" +
"1\t피자\t37.01,127.01\t대구\n" +
"2\t치킨\t37.03,127.02\t대전\n" +
"3\t햄버거\t37.13,127.02\t서울\n" +
"4\t감자탕\t36.13,127.02\t부산";
import java.util.ArrayList;import java.util.Arrays;
import java.util.List;
public class escape {
public static void main(String[] args) {
String excel = "수\t이름\t나이\n" +
"1\t박\t20\n" +
"2\t김\t30\n" +
"3\t이\t40\n" +
"4\t권\t비공개";
//rows 만들자..
String[] rows = excel.split("\n");
List<String[]> list = new ArrayList();
//만든 rows에서 tap 기준으로 찢자..
for (int i = 1; i < rows.length; i++) {
list.add(rows[i].split("\t"));
}
List<People> answer = new ArrayList<People>();
// 객체 만들어주자..
for (int j = 0; j < list.size(); j++) {
String[] get = list.get(j);
People p = new People(Integer.parseInt(get[0]), get[1], get[2]);
answer.add(p);
}
System.out.println(answer.toString());
// [{1, 박, 20}, {2, 김, 30}, {3, 이, 40}, {4, 권, null}]
// 아래의 문제도 위와 마찬가지임.. 다만 배열만 한번 신경써주자..
String excel2 = "수\t상호명\t좌표\t지역\n" +
"1\t피자\t37.01,127.01\t대구\n" +
"2\t치킨\t37.03,127.02\t대전\n" +
"3\t햄버거\t37.13,127.02\t서울\n" +
"4\t감자탕\t36.13,127.02\t부산";
String[] rows2 = excel2.split("\n");
List<String[]> list2 = new ArrayList();
for (int i = 0; i < rows2.length; i++) {
list2.add(rows2[i].split("\t"));
}
List<People2> answer2 = new ArrayList<People2>();
for (int j = 1; j < list2.size(); j++) {
String[] get2 = list2.get(j);
People2 p2 = new People2(Integer.parseInt(get2[0]), get2[1], get2[2], get2[3]);
answer2.add(p2);
}
System.out.println(answer2.toString());
}
//[{1, 피자, coordinate=[37.01, 127.01], 대구}, {2, 치킨, coordinate=[37.03, 127.02], 대전}, {3, 햄버거, coordinate=[37.13, 127.02], 서울}, {4, 감자탕, coordinate=[36.13, 127.02], 부산}]
System.out.println(answer2.toString());
}
}
class People {
private int number;
private String name;
private Integer age;
public People(int number, String name, String age) {
if (!age.equals("비공개")) {
this.age = Integer.parseInt(age);
}
this.number = number;
this.name = name;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "{" + number + ", " + name + ", " + age + "}";
}
}
class People2 {
private int num;
private String name;
private float[] coordinate;
private String region;
public People2(int num, String name, String coordinate, String region) {
this.num = num;
this.name = name;
float[] tmp = new float[2];
tmp[0] = Float.parseFloat(coordinate.split(",")[0]);
tmp[1] = Float.parseFloat(coordinate.split(",")[1]);
this.coordinate = tmp;
this.region = region;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "{" + num + ", " + name + ", coordinate=" + Arrays.toString(coordinate) + ", " + region + "}";
}
}
간단한 코드와 작동 방식이었지만 js를 하다가 java를 공부하다 보니 전체적인 맥락은 비슷하지만 자료구조를 다루는데 적응이 조금 늦어지는 것 같다. 이 문제로 인해서 조금 더 익숙해지는 계기가 되었다.