2009-06-20 5 views
0

사용자가 자유 흐름 텍스트를 입력 할 수있는 텍스트 영역이 있습니다. 아래의 조건을 기반으로 Java 클래스의 행/발생을 구분하고 싶습니다.조건으로 분할 할 텍스트 영역 텍스트

사용자가 Enter 키를 누르지 않으면 하위 문자열 (텍스트)을 각각 10 자씩 얻고 싶습니다. 사용자가 Enter 키를 누르면 해당 부분을 분리하고 자유 흐름 텍스트/문자열의 끝에 도달 할 때까지 새 하위 문자열을 얻기 위해 15 시까 지 다시 계산을 시작합니다.

예 는 사용자가 입력하는 경우 :

 
Hello I want 
enter key to be caught. 

가 I이 텍스트 아래 문자열로 분리 할 :

  1. 안녕하세요 (누르면 사용자는이 시점에서 키를 입력 가정) 원하는
탔다 (한계가 15이기 때문에)
  • 가되도록 키 입력
  • +0

    jQuery를 사용해 보셨습니까? – Jason

    답변

    -1

    "10 자"라고 말하면 15자를 의미한다고 가정합니다.

    이 경우, 먼저 줄 바꿈 문자를 StringTokenizer로 분할 한 다음 각 결과를 15 문자 덩어리로 나눕니다. 이렇게하면 StringTokenizer의 외부 루프와 15-char chunkifying의 내부 루프가 제공됩니다.

    +1

    테킬라가 나를 chunkify하게합니다 – Jason

    +0

    docs는 StringTokenizer를 사용하여 중지합니다. 이전 버전과의 호환성을 위해서만 유지됩니다. – geowa4

    +0

    고마워 폴, 예 10 또는 15 ... 여기 라인/행 개수를 얻는 데 문제가 있습니다 ... 행을 얻은 후 일부 작업을 수행하고 또한 행의 카운터가 필요합니다 –

    1
    if(text.contains("\n")) { 
    
        counter = 15; 
        String[] splitText = text.split("\n"); 
        ArrayList<String> chunks - new ArrayList<String>(text.length%counter+1); 
        StringBuilder current = new StringBuilder(counter); 
    
        for(int i = 0; i < splitText.length; i++) { 
        for(int j = 0; j < splitText[i].length; j++) { 
         current.append(text.charAt(j)); 
         if(j%15 == 0) { 
         chunks.add(current.toString()); 
         current = new StringBuilder(counter); 
         } 
        } 
        chunks.add(current.toString()); 
        current = new StringBuilder(counter); 
        } 
    
    } 
    

    다른 요구 사항을 파악할 수 있습니다. 기본적으로 15 개 또는 중첩 루프가 아닌 것은 기본적으로 동일합니다.

    +0

    감사합니다. 성 조지. 이 순서대로 청크를 줄 것인지 확실하지 않습니다. 예를 들어 세 개의 청크를 얻을 수 있습니다. 1.Hello 내가 원한다면 (사용자가이 시점에서 키를 입력했다고 가정) ==> 이 번호를 시퀀스 # 1로 지정합니다. 2.enter 키는 입니다.이 청크를 얻은 후에는 # 2로 번호를 매길 필요가 있습니다. 3.caught ==>이 코드는 시퀀스 # 3이있는 세 번째 청크 여야합니다. –

    +0

    편집 : 새 줄을 잊어 버렸습니다. – geowa4

    +0

    안녕하세요 조지 ... 그게 내가 갈라 놓으면 '/ n'을 잃어 버릴거야. 하지만 사용자가 Enter 키를 누르기 전에 입력 한 텍스트가있는 경우 올바른 항목 번호로 항목에 해당 줄도 보관해야합니다. 사용자가 텍스트를 추가하지 않고 Enter 키를 누르면 해당 항목을 제거해야합니다 .... 어떤 도움이 필요합니까? –