2017-02-21 9 views
0

다음 문자열 집합이 있습니다.색인에서 시작 및 끝 태그 인 String.subSequence의 대체

String s1 = "Some random text followed by timestamp('some data')"; 
String s2 = "Some extended random tet followed by timestamp('some extra data')"; 
String s3 = "Some tiny random text followed by timestamp('some tiny data')"; 

나는 timestamp('로 시작하고 ')로 끝나는 서브 시퀀스를 교체합니다. 다음 string.subSequence(beginIndex, endIndex)은 start 및 end 태그를 사용하여 문자열에서 subString을 얻을 수 있음을 알고 있습니다. 하지만 제 경우에는 역동적 일 수 있기 때문에 색인을 시작하고 종료 할 수 없습니다.

나는 이런 식으로 뭔가로 찾고 있어요

string.functionIAmLookingFor(String startCharSequence , String endCharSequence); 

은 모두 charSequences는 문자열에서 발견되는, 하나는 시작 및 종료 태그, 또는이 문자열을 제외한 문자열 사이에있는 문자열을 반환하는 경우 또는 다른 형식 일 수 있습니다. Java 7을 사용하고 있습니다. 어떤 도움을 주시면 감사하겠습니다.

+0

당신은 [같이 IndexOf '()'(https://docs.oracle.com/javase/7/docs/api 살펴 있어야 /java/lang/String.html#indexOf(java.lang.String)). –

+1

[정규 표현식] (https://docs.oracle.com/javase/tutorial/essential/regex/)이 문제를 해결할 수 있습니다. –

+0

@FlorentBayle : 고마워요, 너무 바빠서 나는 스스로 식별하지 못하는 멍청한 기분이 듭니다. 어떤 원시 함수로 : –

답변

0

indexOflastIndexOf를 사용하여 동적 위치를 줄 수

int beginIndex = s1.indexOf("timestamp('"); 
int endIndex = s1.lastIndexOf("')"); 
s1 = s1.replace(s1.subSequence(beginIndex, endIndex), newValue); 
+0

고마워, 정확히 내가 무엇을 찾고 있었는지. –