구문 분석 할 프레임이 있습니다. 이것은 String이며 필드에는 구분 기호가없고 길이가 다릅니다. Java를 사용하여 필드를 가져올 수 있습니까?구분 기호없이 문자열을 구문 분석하는 방법은 무엇입니까?
예를 들어 프레임 : $ XXYYYU #
어떻게 필드 'XX', 'YYY'와 'U'의 내용을 얻을 수 있나요?
감사합니다.
구문 분석 할 프레임이 있습니다. 이것은 String이며 필드에는 구분 기호가없고 길이가 다릅니다. Java를 사용하여 필드를 가져올 수 있습니까?구분 기호없이 문자열을 구문 분석하는 방법은 무엇입니까?
예를 들어 프레임 : $ XXYYYU #
어떻게 필드 'XX', 'YYY'와 'U'의 내용을 얻을 수 있나요?
감사합니다.
길이가 일정하다는 것을 알고 있다면 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
질문 읽기 : ** 필드에는 구분 기호가없고 다른 길이가 있습니다. ** – BackSlash
@BackSlash oops. 내 잘못이야! – Mena
@BackSlash, 필드의 길이가 서로 다릅니다. 그러나 각 필드는 항상 모든 프레임에서 동일한 길이를 유지한다고 가정합니다. 그렇다면이 방법이 효과적입니다. – user2144555
.
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
우리가 예를 들어 문자열을 가질 수 있습니다. – FDinoff
구분 기호가없는 경우 추출 할 모든 단일 파트의 정확한 길이를 적어도 알고 있어야합니다. 가능하지 않다고 생각하면 추출 할 부분을 "추측"해야합니다. – BackSlash
문자열 예제의 프레임과 같습니다. 그것은 .txt 파일에 있으며 일부 필드를 얻기 위해 구문 분석하고 싶습니다. – user2144555