현재 문자열의 배열이 있는데, 각 배열의 길이는 무작위입니다. 모든 "A"를 "X"로 바꾸고 싶습니다. 어떻게해야할까요?Java의 문자열에서 문자 대체
예 :
String str = "ABCDEFGAZYXW";
나는 문자열이 "XBCDEFGXZYXW"
가되고 싶다. 내가 사용하려고 :
str.replaceAll("A", "X");
을하지만 문자열을 변경하지 않습니다. 어떤 도움이라도 대단히 감사합니다!
현재 문자열의 배열이 있는데, 각 배열의 길이는 무작위입니다. 모든 "A"를 "X"로 바꾸고 싶습니다. 어떻게해야할까요?Java의 문자열에서 문자 대체
예 :
String str = "ABCDEFGAZYXW";
나는 문자열이 "XBCDEFGXZYXW"
가되고 싶다. 내가 사용하려고 :
str.replaceAll("A", "X");
을하지만 문자열을 변경하지 않습니다. 어떤 도움이라도 대단히 감사합니다!
str = str.replaceAll("A", "X");
replaceAll
방법은 문자열을 변경 (자바 문자열 불변)하지만 String
새로운 객체를 생성하고, 함수 호출의 결과로서 리턴하지 않는다. 이 방법으로 이전 객체가 변경되지 않고 단순히 참조되지 않는 새 객체에 대한 참조를 변경합니다.
당신은 결과, 즉 할당해야합니다 :
str = str.replaceAll("A", "X");
는 시도를 STR = str.replaceAll ("A", "X");
문자열은 Java에서 변경할 수 없습니다. 자바
문자열은 replaceAll()
를 사용하여 올바른 궤도에있어, 불변,하지만 당신은 수정 괜찮다면 당신은 (원본 문자열에, 예를 들어, 어딘가 메소드에 의해 반환되는 새로운 문자열을 저장해야합니다 그것). 내 말은 다음과 같습니다
String str = "ABCDEFGAZYXW";
str = str.replaceAll("A", "X"); // notice the assignment!
단지 서로 하나의 문자를 대체 사용할 수 replace
:
str = str.replace('A', 'X');
으로 많은 사람들이 이미 String.replaceAll
도 작동을 게시,하지만 당신은 먼저 알고 있어야합니다 이 메서드의 매개 변수는 정규 표현식입니다. 당신이 인식하지 못하는 경우, 그것은 당신이 모든 경우에 예상대로 작동하지 않을 수 있습니다 :
// Replace '.' with 'X'.
str = str.replaceAll(".", "X"); // Oops! This gives "XXXXXXXXXXXX"
참고로, "." "X",'str = str.replaceAll ("\\.", "X");'를 사용하면됩니다. 구두점과 같은 정규 표현식은 문자 앞에 찍히는 백 슬래시를 문자 그대로 ("모든 문자"의 경우 ".", "줄의 끝"의 경우 "$"와 같이 메타 문자로 사용하는 것이 아니라) 원한다면 사용합니다. – cHao
을 기본적으로 완전히 대체하기 함수는 두 개의 매개 변수를 취할 것, 하나는 제거 할 문자열이고 두 번째는 새로운 문자열 당신은 대체하기를 원하며 리턴 타입은 String이다.
교체 후 새 문자열이 반환됩니다.
여기에서는이 메서드를 호출하지만 변수에 새 값을 저장하지 않습니다. 당신은 교체하거나 그래서 코드에 당신이 당신의 문자열 객체로 저장해야이
String string = "My Old String with Old value";
System.out.println(string.replaceAll("Old", "New"));
//Or
string = string.replaceAll("Old", "New");
System.out.println(string);
처럼 인쇄 할 수 있습니다.
str = str.replaceAll("A", "X");
와우 감사합니다! 매우 빠른 응답도! – Raymosrunerx
당신을 환영합니다;) –