2012-12-03 3 views
2

"I"같은 것을 제거하려고합니다. "II." 이야기의 텍스트 파일에서 "279"(페이지 번호와 챕터) 등 "로빈 후드". 지금까지 내가 숫자를 제거하는 방법을 알아 질수 그림<String> arraylist에서 로마 숫자와 숫자를 삭제하려고 시도했습니다.

for (int x = 0; x < list.size(); x++) { 

    if (list.get(x).equalsIgnoreCase("I.") || list.get(x).equalsIgnoreCase("II.") || list.get(x).equalsIgnoreCase("III.") || list.get(x).equals("IV.") || list.get(x).equals("V.") || list.get(x).equalsIgnoreCase("VI.") || list.get(x).equalsIgnoreCase("VII.") || list.get(x).equalsIgnoreCase("VIII.") || list.get(x).equals("IX.") || list.get(x).equals("X.") || list.get(x).equals("XI.") || list.get(x).equalsIgnoreCase("XII.") || list.get(x).equalsIgnoreCase("XIII.") || list.get(x).equalsIgnoreCase("XIV.") || list.get(x).equalsIgnoreCase("XV.") || list.get(x).equalsIgnoreCase("XVI.") || list.get(x).equalsIgnoreCase("XVII.") || list.get(x).equalsIgnoreCase("XVIII.") || list.get(x).equalsIgnoreCase("XIX.") || list.get(x).equalsIgnoreCase("XX.") || list.get(x).equalsIgnoreCase("XXI.")) { 
     list.remove(x); 
     numWords--; 
    } 

    for (int y = 0; y < 9; y++) { 
     if (list.get(x) == y) { 
      list.remove(x); 
      numWords--; 
     } 


    } 

} 

내가 y == list.get(x)는하지만 난 정말 다른 생각 질수 있는지 찾고 있어요 오류가있을 알고 있어요합니다 (arraylist은 문자열입니다) 번호를 제거하는 방법.

+0

은'list'가'ArrayList'입니까? – andreih

+4

[정규식] (http://docs.oracle.com/javase/tutorial/essential/regex/)이 여기에 적합해야합니다. 몇 달 전에 로마 숫자를 일반 숫자로 바꾸기 위해 정규 표현식을 기반으로 한 코드를 사용했지만, 그것을 찾으려고 노력할 것입니다. (필자의 경우에는 훨씬 더 복잡하지만 17 세기의 매우 시끄러운 텍스트를 파싱하는데 사용했습니다. : |) – amit

+0

예 목록은 ArrayList Zach

답변

3

그 대신 대규모 if 사항이 아마도

if (list.get(x).toUpperCase().matches("[IVXLCDM]+\\.")) {...} 

[IVXLCDM] 경기 중 I, V .. M처럼 뭔가를 할 수있는의 - 그래서 [IVXLCDM]+ 일치 이러한 문자의 연속 문자열입니다. \.은 마침표로 문자열이 끝나도록합니다.

이제 숫자를 일치 시키려면 정규식 "\\d+"을 사용하고 위와 같은 아이디어를 적용 할 수 있습니다.

+0

더 많은 로마자가 누락되었습니다. – amit

+0

@amit 감사합니다. – arshajii

+0

감사합니다. 추가해보세요. – Zach

2

숫자 나 로마 숫자와 일치하는 줄을 찾으려면 정규식을 사용해야합니다.

^([0-9]+)|([IVXLCM]+)\\.?$ 

모두 아랍어와 로마 숫자를 확인하려면 : 당신이 필요로하는 (정규 표현식의 줄임말) 정규식은 아마 같은 것입니다. 정규 표현식에 대한 tutorial은 정규식을 시험해 볼 수있는 샘플 응용 프로그램을 제공하고 구문을 설명합니다.

+0

튜토리얼을 잘 보지 못했지만, 자바 t 학교를 배우는 제 2 학년 때만 그렇습니다. 그래서 아직 그 문법을 사용하지 않았습니다. 그래도 고마워! – Zach

+0

문제 없음 : regexes는 프로그래머 용 무기에서 매우 귀중한 도구이며 최대한 빨리 연구해야한다고 생각합니다. – didierc

관련 문제