2012-05-31 3 views
1

ICU 휴식 반복기를 사용하여 자르기를했습니다. the example, 그들은 모든 경계를 반복하려면 다음 코드를 사용하는 것이 좋습니다 :ICU의 BreakIterator에 대한 잘못된 설명서가 있습니까?

void listWordBoundaries(const UnicodeString& s) { 
    UErrorCode status = U_ZERO_ERROR; 
    BreakIterator* bi = BreakIterator::createWordInstance(Locale::getUS(), status); 


    bi->setText(s); 
    int32_t p = bi->first(); 
    while (p != BreakIterator::DONE) { 
     printf("Boundary at position %d\n", p); 
     p = bi->next(); 
    } 
    delete bi; 
} 

next() 실제로 반복자를 변경했다고 표시하기 위해 나타납니다. 그러나 documentation은 값을 반환하는 것만 효과가 있음을 나타냅니다. 이것은 단지 나쁜 문서의 예입니까? 특히, next() 실제로 돌연변이 있다면, last() 또한 돌연변이인지 알고 싶습니다.

답변

0

next()last()이없는 반면에 current()은 const 임에 유의하십시오. 예, next()은 반복기를 진행하고 last()은 끝 위치로 설정합니다. 나는 문서를 고치기 위해 http://bugs.icu-project.org/trac/ticket/9360를 제출했다, 고마워.

+0

.. 티켓이 수정되었습니다. –

관련 문제