본문으로 바로가기
반응형
뭔가를 만들다가 꼬여가지고 이미 string 으로 묶어놓은 문자열에서 특정 줄을 제거해야 할 일이 생겼습니다.

그럴 때 간단하게 사용할 수 있는 java 메서드입니다.

public static String removeLinesWithPattern(String input, String pattern) {
List lines = new ArrayList<>(Arrays.asList(input.split("\n")));
lines.removeIf(line -> line.contains(pattern));
return String.join("\n", lines);
}

이 메서드는 Java로 작성된 코드입니다. 주어진 문자열에서 특정 패턴이 포함된 모든 줄을 제거하는 메서드입니다.

메서드 설명:
removeLinesWithPattern 메서드는 두 개의 매개변수를 입력받습니다.

input: 패턴을 찾아 제거할 대상이 되는 문자열입니다. 이 문자열에는 여러 줄이 있을 수 있습니다.
pattern: 제거할 줄에서 찾고자 하는 문자열 패턴입니다.
메서드는 다음과 같은 작업을 수행합니다:

input 문자열을 줄바꿈(\n) 기준으로 나눠서 lines라는 ArrayList에 저장합니다.
lines에서 주어진 pattern이 포함된 모든 줄을 제거합니다.
lines에 남은 줄들을 줄바꿈(\n)으로 다시 이어붙여서 결과 문자열을 반환합니다.
활용법:
이 메서드는 주로 로그 파일, 텍스트 문서, 설정 파일 등에서 특정 문자열 패턴을 포함하는 줄들을 제거하고 싶을 때 사용할 수 있습니다. 예를 들어, 로그 파일에서 에러 메시지가 포함된 줄만 제거하고 싶을 경우 다음과 같이 사용할 수 있습니다.

String inputText = "INFO: Starting application\nERROR: File not found\nINFO: Application running\nWARNING: Low disk space\nERROR: Connection timeout";
String pattern = "ERROR";
String result = removeLinesWithPattern(inputText, pattern);
System.out.println(result);

이 예제의 출력 결과는 다음과 같습니다:
INFO: Starting application
INFO: Application running
WARNING: Low disk space

이 메서드의 파이썬 버전은 아래와 같습니다.

def remove_lines_with_pattern(input, pattern):
lines = input.split("\n")
filtered_lines = [line for line in lines if pattern not in line]
return "\n".join(filtered_lines)

Random Photo

반응형