Java에서 HTML 편집기를 코딩하는 중입니다. 자동 들여 쓰기를 지원하고 싶습니다. 현재 편집중인 파일에서 HTML 태그 객체를 나타 내기 위해 구현 된 복합 패턴이 있습니다. 예를 들어,이 코드 :문자열 조작 또는 재귀 함수?
<table> <tr> <th>Col1</th> <th>Col2</th> </tr> <tr> <td>Data1</td> <td>Data2</td> </tr> </table>
가 복합이 구조적 표현 될 것이다 :
- 테이블 -> TR (제 1), TR (초)
- TR을 (제 1) -> 제 (COL1), 제 (Col2의)
- TR (초) -> TD (데이터 1) TD (데이터 2)
-> y, z는 x가 y와 z의 부모임을 의미합니다.
- 는 들여 쓰기 문자열 포함을 반환하는 재귀 함수를 만듭니다
여기 두 가지 옵션이 있습니다.
- 현재 HTML 코드의 형식화되지 않은 문자열을 반환하고 나중에 들여 쓰기를 추가하는 재귀 함수를 만듭니다.
첫 번째 작업은 쉽습니다. 그러나 패턴을 변경하면 사용자의 들여 쓰기 패턴에 따라 자동 들여 쓰기를 계속하는 것이 어렵다는 것을 알았습니다. 이 때문에 옵션 2가 바람직하다고 생각합니다. 나는 그것이 올바르게 작동하도록 할 수 있다면 이것 또한 역동적 일 수 있다고 생각합니다. 문제는 문자열을 조작하는 방법을 잘 모르겠습니다.
제 생각에는 어떻게 든 스택을 사용할 수 있다는 것입니다. 열려있는 태그를 푸시하고 닫으면 열 수 있습니다. 스택의 태그 수는 새 줄의 다음 태그 앞에 들여 쓰기해야하는 횟수를 결정합니다. 대신에 정수를 사용할 수도 있지만 같은 개념이 적용됩니다. 문제는 문자열의 태그를 반복 처리하여 조작 할 수있는 방법을 모르겠다는 것입니다.
그래서 내가 설명한대로 문자열 조작을 수행 할 수있는 방법이 있습니까? 또는 재귀 함수를 사용하는 것이 더 좋습니다.
아마도 최선의 선택은 아마도 재귀 함수를 사용하는 것이라고 생각합니다. 고맙습니다. – CouchCommando