문자열이 있는데 문자열에서 두 번째 "a"를 "e"로 변경한다고 가정 해보십시오.문자열에서 특정 문자를 변경하십시오.
String elephant = "elaphant";
String.replace()를 사용했지만 문자열의 모든 a를 바꿔 "elephent"를 반환했습니다.
elephant.replace("a", "e");
이 작업을 수행하는 데 사용할 수있는 루프 또는 방법이 있습니까? 다들 감사 해요.
문자열이 있는데 문자열에서 두 번째 "a"를 "e"로 변경한다고 가정 해보십시오.문자열에서 특정 문자를 변경하십시오.
String elephant = "elaphant";
String.replace()를 사용했지만 문자열의 모든 a를 바꿔 "elephent"를 반환했습니다.
elephant.replace("a", "e");
이 작업을 수행하는 데 사용할 수있는 루프 또는 방법이 있습니까? 다들 감사 해요.
첫 번째 문자의 색인을 가져와야합니다.
indexOf 메소드를 사용해보십시오.
int myIndex = elephant.indexOf('a');
색인을 얻은 후에는 StringBuilder를 사용하여 값을 대체하십시오. 예 :
이 의견은 내 질문에 대한 대답 이었지만 두 번째 또는 세 번째 발생 색인을 얻으려면 어떻게해야합니까? 아니면 일련의 편지? – wasimsandhu
@awkwardgiraffe 'a'의 첫 번째 항목을 시작 색인으로 사용하면 두 번째 값을 가져 오는 데 관심이있을 때 포함되지 않습니다. 이미 myIndex 변수에 저장된 첫 번째 인덱스가 있으므로 다음과 같은 작업을 수행 할 수 있습니다. int mySecondIndex = elephant.indexOf ("a", myFirstIndex + 1); 물론, 당신이 세 번째를 원한다면, 당신은 같은 접근법을 따르고 두 번째를 출발점으로 사용할 수 있습니다. – RizJa
@RizJa가 도움이됩니다. 고맙습니다! – wasimsandhu
문자 배열로 변환하고 원하는 문자를 전환 한 다음 다시 문자열로 변환 할 수 있습니까?
String elephant = "elaphant";
int index = -1;
int count = 0;
while(count < 2) {
index = elephant.indexOf("a", index+1);
count++;
}
if(index >= 0 && index < elephant.length()) {
char[] tmp = elephant.toCharArray();
tmp[index] = "e";
elephant = new String(tmp);
}
또는 당신은 모두 StringBuilder
StringBuilder sbTemp = new StringBuilder(elephant);
sbTmp = sbTmp.replace(index, index+1, "e");
elephant = sbTmp.toString();
두 번째 방법은 경계 문제를 해결합니다. 귀하의 주먹 접근 방식에 대한 문자열을 할당 할 수 없습니다 문자 배열 –
코드를 선호하는 경우 :
String elephant = "elaphant";
//convert the string to array of string
String[] sp = elephant.split("");
int countA = 0;
boolean seenTwice = false;
String result = "";
for (int i = 0; i < sp.length; i++) {
//count number of times that a has been seen
if (sp[i].equals("a")) {
countA++;
}
// if a has been seen twice and flag seenTwice has not been see
if (countA == 2 && !seenTwice) {
result += "e";
seenTwice = true;
} else {
result += sp[i];
}
}
System.out.println(result);
출력 :
elaphent
내가 찾고있는 "코끼리"elaphent "입니다. – wasimsandhu
@awkwardgiraffe 당신은 "나는 그 문자열에서 두번째"a "를"e "로 바꾸고 싶다. : 그래서 나는 당신이 원하는 것을했다. 첫 번째 것을 바꾸고 싶다면, 그것은 제왕이고 나는 나의 대답을 업데이트 할 수있다. –
두 번째 "e"를 "a"로 변경하려고했으나 걱정하지 않아도 이미 대답했습니다. – wasimsandhu
그것은 정규 표현식으로 수행 할 수있다. 하지만 어떻게 해야할지 모르겠다. 나는 정규 표현식이 그렇게 좋지 않다. – afzalex
@awkwardgiraffe 그것은 항상 두 번째입니까? –