2013-05-19 5 views
-1

구문 분석 할 프레임이 있습니다. 이것은 String이며 필드에는 구분 기호가없고 길이가 다릅니다. Java를 사용하여 필드를 가져올 수 있습니까?구분 기호없이 문자열을 구문 분석하는 방법은 무엇입니까?

예를 들어 프레임 : $ XXYYYU #

어떻게 필드 'XX', 'YYY'와 'U'의 내용을 얻을 수 있나요?

감사합니다.

+0

우리가 예를 들어 문자열을 가질 수 있습니다. – FDinoff

+1

구분 기호가없는 경우 추출 할 모든 단일 파트의 정확한 길이를 적어도 알고 있어야합니다. 가능하지 않다고 생각하면 추출 할 부분을 "추측"해야합니다. – BackSlash

+0

문자열 예제의 프레임과 같습니다. 그것은 .txt 파일에 있으며 일부 필드를 얻기 위해 구문 분석하고 싶습니다. – user2144555

답변

1

길이가 일정하다는 것을 알고 있다면 substring 방법을 String으로 시도 할 수 있습니다. 예를 들어

:

package test; 

public class Main { 

    public static void main(String[] args) { 
     String myString = "$XXYYYU#"; 
     String xx = myString.substring(1, 3); 
     String yyy = myString.substring(3, 6); 
     String u = myString.substring(6, 7); 
     System.out.println(xx + " " + yyy + " " + u); 

    } 
} 

출력 : 문자열을 반복하고 수동으로 분석하는 것이 최선이 될 것 이런 종류의 문제를 들어

XX YYY U 
+1

질문 읽기 : ** 필드에는 구분 기호가없고 다른 길이가 있습니다. ** – BackSlash

+0

@BackSlash oops. 내 잘못이야! – Mena

+0

@BackSlash, 필드의 길이가 서로 다릅니다. 그러나 각 필드는 항상 모든 프레임에서 동일한 길이를 유지한다고 가정합니다. 그렇다면이 방법이 효과적입니다. – user2144555

1

.

char lastChar = 0; 
for (int i = 1; i < str.Length - 1; i++) 
{ 
    if (lastChar != str[i]) 
    { 
    System.out.println(); 
    lastChar = str[i]; 
    } 

    System.out.print(str[i]); 
} 

이 발생한다 : 답변이 가장 가능성이 그 내용을 기반으로 할 것입니다 때문에

XX 
YYY 
UU 
관련 문제