[자바] 수정해야되는데 어디를 어떻게 수정해야 할지를 모르겠습니다.
조회수 916회
코드가 길어서 따로 봐주실 수 있을까요?
밑에는 일부분만 올려 놓아 습니다.
기존 텍스트파일을 불러서 안에 있는 내용을 한글로 변환되게끔 만든 코드입니다.
123,45 원이라는 내용이 있으면
만이천삼백사십오원이라고 하고싶은데요 백이십삼사십오원이라고 바뀝니다.
프로퍼티에 (,) 특수문자는 사라지게 해놨는데. 왜 안될까요?..
프로퍼티에 있는 내용을 먼저 치환하고
그다음 숫자를 한글로 바꾸게끔 설정 한거 같은데요
public int formatFile(LinkedProperties props, String filePath, String changePath,String fileName){
int resultCode = 0;
BufferedReader br = null;
BufferedWriter bw = null;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath+"/"+fileName), "utf-8"));
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(changePath+fileName), "utf-8"));
String s = null;
while ((s = br.readLine()) != null) {
// 숫자를 한글로 변경하기
// charAt를 이용하여 숫자가 아니면 넘기는 식으로 해서 뽑아 낼 수 있다.
// 문자열에서 찾아낸 숫자를 변화할 타이밍을 찾기 위한 변수
// 필요이유 : 한문장에 여러개의 숫자가 있을 수 있기 때문에.
boolean intStart = false;
String number = "";
String plainText = s;
//프로퍼티에 선언된 문자들 치환하기
Enumeration<Object> iterator = props.keys();
while (iterator.hasMoreElements()) {
String searchWord = (String) iterator.nextElement();
//변환시킬 내용이 있는지 여부 판단
if(plainText.contains(searchWord)){
//if(s.matches(searchWord)){
resultCode = 1;
}
plainText = plainText.replace(searchWord, props.getProperty(searchWord));
}
//한글자씩 검사
for (int i = 0; i < s.length(); i++) {
//System.out.println(s);
if (48 <= s.charAt(i) && s.charAt(i) <= 57) {
intStart = true;
number += s.charAt(i);
//현재 글자가 숫자가 아니면서, 이전글자가 숫자였으면(intStart=true)
} else if (intStart) {
resultCode = 1;
//숫자변환시작
String numberString = changeNumber(number);
plainText = plainText.replaceFirst(number, numberString+ ""); //원래 " "
//사용했던 변수 초기화
intStart = true;
number = "";
}
}
//마지막이 숫자로 끝난 경우
if(number.length() > 0){
resultCode = 1;
//숫자변환시작
String numberString = changeNumber(number);
plainText = plainText.replaceFirst(number, numberString);
//사용했던 변수 초기화
intStart = true;
number = "";
}
// 변환된 내용 넣기
bw.write(plainText);
bw.newLine();
}
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력