윈초
디벨로퍼 인증 개발자
wincho_ 8ff851e059fb4dd59be0b55d44f8149f
이해도 | 알고리즘 |
---|
코틀린에서 yaml을 읽을수 있는 방법이 무엇인가요?
.yml파일의 예시 내용
돼지와의 대화: npctype: Pig npcname: PPPPIIIGGG 1: sender: player msg: 안녕하세요? 2: sender: npc msg: 꿀꿀?
그곳에서 npctype부분, npcname부분을 변수에 담고 싶습니다. 그리고 1, 2에 내용은 배열에(sender라는 배열 / msg라는 배열 따로) 담으려 합니다 어떻게 해야할까요?
PatrickKR
2020.05.10코틀린은 자바를 다루는 것과 매우 비슷합니다!
val config = YamlConfiguration.loadConfiguration(File(<파일주소>))
로 file을 불러와서,
val section = config.getConfigurationSection("돼지와의 대화")
val npctype = section.getString("npctype")
val npcname = section.getString("npcname")
val sender = ArrayList<String>()
val msg = ArrayList<String>()
val section1 = section.getConfigurationSection("1")
val section2 = section.getConfigurationSection("2")
sender.add(section1.getString("sender"))
sender.add(section2.getString("sender"))
msg.add(section1.getString("msg"))
msg.add(section2.getString("msg"))
혹시 오류가 있으면 알려주세요..! 이렇게 하면 npctype, npcname에 각각 String 형태로, sender와 msg에는 배열(ArrayList) 형태로 저장됩니다.
윈초
2020.05.10흠.. 저는 자바에서 파일 불러오는건 안배웠어서.. 앞으로도 코틀린 배우다 막히는거 생기면 물어볼께요! 감사합니다!!
PatrickKR
2020.05.10네! 개발 열심히 하시길 응원하겠습니다!!!
윈초
2020.05.10아 추가질문으로 1, 2 말고 1, 2, 3, 4...같이 숫자에 제한 없이 인식하게 하려면 어떻게 해야할까요?
돼지와의 대화:말고 다른거에도 적용되겐 어떻게 하나요?
그리고 배열의 최댓값은 어떻게 인식하나요?
PatrickKR
2020.05.111. 1,2,3,4,... 같이 무한하게 계속 하려면 일단 돼지와의 대화 하위의 모든 section들을 가져와야 합니다.
이렇게 하면 돼지와의대화 하위의 내용을 npctype, npcname, sender, msg에 저장할 수 있습니다.
배열의 최대값이라면,, 배열의 크기를 말씀하시는건가요? 배열의 크기는 sender.size, msg.size 처럼 size를 구할 수 있습니다.
언제나 그렇듯이 배열에는 0번부타 저장하므로 만약 1~20처럼 순서대로 저장하셨다면 아마 배열에는 0~19까지 그대로 저장될 것 같네요.. 혹시 제 코드에 문제가 있다면 알려주시면 감사하겠습니다.
돼지와의 대화 말고 다른것도 하시려면, 배열을 하나 더 만들거나, 아니면 변수를 그 개수만큼 만들면 되는데, 잘 될지는 모르겠네요..
한번 테스트 없이 써본 코드인데,,, 안타깝게도 지금 컴퓨터를 날려먹어서 테스트할 수 있는 환경이 아니네요 ㅠㅠ
이렇게하면 "아마도" 파일에서
이런식으로 저장하신다면,
아마 내부적으로 이렇게 저장되지 않을까 싶네요... 확실치 못한 답변 드려서 죄송합니다.
윈초
2020.05.11음.. 그럼 알겠습니다! 확인 해보도록 할께요!!
PatrickKR
2020.05.11네! 화이팅하세요!!! 도움이 되었으면 좋겠습니다!
윈초
2020.05.11매번 도와주셔서 감사합니다..!!!!