2014-03-13 8 views
1

내 코드가 작동한다고 가정합니다. 그러나, 코드의 작은 조각 :자바 표준화 목록

while ((line = input.readLine()) != null) { 
    myList.add(line.replaceAll ("[^a-zA-Z0-9 ]", "").toLowerCase()); 
} 

날이 출력을 제공한다 :

a b c d 
123 
abcdz 
456 
aa 
b 
c 
dd 

원하는 출력 :

abcd123abcdz456aabcdd 

이 결과를 출력하는 코드는, 주된 방법이며 is :

for (int i = 0; i < args.length; i++) { 
        BufferedReader reader = new BufferedReader (new FileReader (args[i])); 
        List<String> foo = simplify(reader); 
         for (int j = 0; j < foo.size(); j++) { 
          System.out.println(foo.get(j)); 
         } 
       } 

어떤 아이디어?

미리 감사드립니다.

+2

, 그 모두입니다. – Juvanis

+0

나는 그것을 이해한다 - 그러나 거의/전혀 지식이 내 코드에 이것을 코드화 할 수있다 – user3364788

+1

String s = ""; 's.replace ("", "")'및's.trim()' –

답변

1
StringBuilder sb = new StringBuilder(); 
while ((line = input.readLine()) != null) { 
    String s = line.replaceAll("[^a-zA-Z0-9 ]", "").toLowerCase(); 
    myList.add(s); 
    sb.append(s.trim()); 
} 

그런 다음 sb.toString()을 인쇄하십시오.

System.out.println(sb.toString());

0

readLine은 줄 바꿈을 무시한다. 출력에 사용중인 코드를 표시 할 수 있습니까? 몇 가지 옵션이 있습니다

+0

StringBuilder를 사용하고 싶지 않습니다. 결과를 출력하는 코드는 for (int i = 0; i foo = simplify (reader); 위한 \t \t \t \t \t \t (INT의 J = 0; J user3364788

+0

아, 당신의 문제가있다. System.out.println을 사용하면 출력을 생성하는 동안 각 요소 다음에 줄 바꿈을 추가합니다. 대신 System.out.print()를 사용하십시오. – sheltem

+0

아, 네, 감사합니다! – user3364788

0

,

// Add a trim call 
myList.add(line.replaceAll ("[^a-zA-Z0-9 ]", "").toLowerCase().trim()); 

또는 호출 체인은

myList.add(line.replaceAll ("[^a-zA-Z0-9 ]", ""). 
    replace("\r", "").replace("\n","").toLowerCase()); 

교체 또는 아마 당신은 완전히 사용자 지정 방법으로 그 논리를 추출한다.

편집 이 추가, 다중 입력 Strings에서 단일 String 모든 공백을 제거하고 생성하기 위해

if (foo.get(j) != null && foo.get(j).trim().length() > 0) { 
    System.out.println(foo.get(j).trim()); 
} 
+0

나는이 두 가지를 시도했지만 아직 새로운 줄이 인쇄되고있다 – user3364788

+1

@ user3364788 질문에 대한 업데이트를 기반으로 편집 됨. –

0

: 당신이 공백과 줄 바꿈을 손질해야

// initializing StringBuilder 
StringBuilder sb = new StringBuilder(); 
// iterating over lines read by Reader 
while ((line = input.readLine()) != null) { 
    // appending line to StringBuilder 
    sb.append(line); 
} 

// printing StringBuilder toString lowercased with replaced white space 
String result = sb.toString().toLowerCase().replaceAll("\\s", ""); 
System.out.println(result);