2014-09-18 3 views
-1

나는 파일에서 단어를 읽고 있습니다. 구두점을 무시하고 싶습니다. (예를 들어, Nay이면 Nay 만 읽으려고합니다). 필자는 지금 당장 ","을 무시하는 코드를 만들었지 만 필자의 요구는 모든 구두점과 숫자를 무시하는 것입니다. 나의 접근 방식은 지루하고 지성이 없습니다. 모든 구두점과 숫자를 무시할 수있는 방법을 제안하십시오.문자열의 구두점을 무시하십시오.

이 게시물이 적합하지 않다고 생각하면 내 담당자를 기부하지 말고 내 계정을 차단하십시오. 네가 뭘 원하는지 알게 해줘. 너와 그걸 나눠 줄거야. Text File

내가 무시하는 라인을 아래와 같이 코드를 작성했습니다

if(wordArray[j].charAt(k)!=',') 

아래 관련 코드를 찾아주세요 ","다음과 같이 내가 읽으려고하고있는 텍스트 파일의

하나는

for(int k=0;k<wordArray[j].length();k++) 
{ 
    if(wordArray[j].charAt(k)!=',') 
    { 
     arrayFinal.add(wordArray[j].charAt(k)); 
    } 
} 

업데이트 후

+0

업데이트 된 코드를 확인하십시오

그런 다음 단위 테스트 방법처럼 보일 수있다. – spartan

+0

당신은 정규식을 사용하고 구두점없이 문자열을 구성 할 수 있습니다. 입력 및 예상 출력에 대한 추가 예제를 제공하십시오. – TheLostMind

+0

내 게시물에 입력 된 텍스트 파일 링크를 공유했습니다. 입력 예는 다음과 같습니다. 입력 : 출력 : cant 입력 : 할 수 없습니다. 출력 : – spartan

답변

0

나는 당신이 원하는 것을 정확히 모르지만, 당신의 의견으로는 당신이 이것을 원합니다.

public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); 
    String s = sc.next().replaceAll("[^a-zA-Z]", ""); 
    System.out.println(s); 
} 

can't --> input 
cant --> output 
0

일반적인 프로그래밍 지침으로는 크고 복잡한 방법을 더 짧은 방법으로 구분하십시오. 이것은 많은 장점 (단위 테스트, 가독성, 확장 성, 재사용)을 가지고 있습니다.

그래서 당신은 같은 것을 수행 할 수 있습니다

public static String stripPunctuation(String fullString) { 
    StringBuilder sb = new StringBuilder(); 
    for (int i=0; i < fullString.length(); i++) { 
     if (Character.isLetter(fullString.charAt(i))) { 
      sb.append(fullString.charAt(i)); 
     } 
    } 
    return sb.toString(); 
} 

을 그리고 당신이 그것을 필요로 할 때 호출. 이 작업을 수행 할 수있는 다른 타사 라이브러리가있을 수도 있지만 위 내용은 종속성을 도입하지 않습니다.

@Test 
public void testStripPunctuationFromString() { 
     assertEquals("test", TheClassName.stripPunctuation(".*[email protected]&")); 
     assertEquals("", TheClassName.stripPunctuation(".#*^")); 
} 
+0

그리고 속도가 너무 느린 경우 속도를 높이는 방법이 있습니다. http://stackoverflow.com/questions/8894258/fastest-way-to-iterate-over-all-the-chars-in-a-string – bphilipnyc

관련 문제