문제

우리는 많은 어휘 처리하는 임의의 문자열을 포함하는 임의의 문장 부호.나누어지 여부터를 사용하여 문자/문자열 또는 심볼릭 상수입니다.

례로 읽어야의 언어-독립적지만 대부분은 Java.

거기에는 취소 예는 문장은 의미 역할을 해야로 확인정:

File.separator"/""\\";//no-brainer 으로 그것이 OS 에 의존

쓰기 XML_PREFIX_SEPARATOR = ":";

그러나 그의 말이 나를 교체해야 하는 모든의 예 "" 빈 문자열`.내가 쓸 수 있습니다:

s = s.replaceAll("\"\"", "");

s = s.replaceAll(S_QUOT+S_QUOT, S_EMPTY);

(나는 정의된 모든 일반적인 구두점으로 S_FOO(문자열)및 C_FOO(char))

에의 호의 마술 문자열/문자:

  1. 그것은 짧
  2. 그것은 자연을 읽기(가끔)
  3. 이름 상수 익숙하지 않을 수 있습니다(C_APOS'\'')

찬성의 상수

  1. 그것은 을 만들기 위해 열심히 오타(예:대 "''" + '"'S_APOS+S_APOS + C_QUOT)
  2. 그것을 제거를 탈출한 문제해야 regex 할 "\\s+""\s+""\\\\s+"?
  3. 그것은 쉽게 검색에 대한 코드를 구두점

(거기에 제한이 나는 것이 쓰지 않기 때문에 이 방법으로도 정규식의 구문은 하나의 가장 인 장애 부품의 모든 프로그램입니다.우리가 생각해야 더 나은 구문입니다.)

도움이 되었습니까?

해결책

정의가 시간이 지남에 따라 또는 설치간에 변경 될 수있는 경우, 이러한 것들을 구성 파일에 넣고 시작 또는 주문형 (상황에 따라 다름)에서 정보를 선택하는 경향이 있습니다. 그런 다음 정보를 시스템에 노출시키기 위해 속성에 대한 읽기 전용 인터페이스와 명확한 이름을 가진 정적 클래스를 제공하십시오.

사용량은 다음과 같습니다.

s = s.replaceAll(CharConfig.Quotation + CharConfig.Quotation, CharConfig.EmtpyString);

다른 팁

에 대한 일반 문자열 처리, 을,나를 사용하지 않을 것이 특징이 있다.공간은 항상 공간,그리고 그것은 단지 자연을 읽(고 쓰기!):

s.replace("String", " ");

보다:

s.replace("String", S_SPACE);

데 특별한 관심을 가지를 사용하는 것이" "탭을 나타내 예를 들어,그 이후 그들은 쉽게 찾을 수 없다 구별한 공간에서 문자열입니다.

로 같은 것들에 대한 XML_PREFIX_SEPARATORFILE_SEPARATOR, 로,당신은 아마 없을 다루는 상수처럼,이후 사용해야 합니다 라이브러리를 할 수은 당신을 위해 작업을 수행합니다.예를 들어,당신 없는 손으로 쓰: dir + FILE_SEPARATOR + filename, 지만,오히려 전화: file_system_library.join(dir, filename) (또는 해당 당신을 사용하여).

이 방법은,당신은하지만 응답에 대한 것을 다음과 같은 상수,당신은 실제로 훨씬 더 나은 처리의 가장자리는 경우에 당신은 아마 생각하고 있지 않다고 지금

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top