자바의 String의 개별 문자를 액세스하기 위해, 우리는있다 String.charAt(2)
. Java에서 String의 개별 문자를 제거하는 내장 함수가 있습니까?
이 같은:
if(String.charAt(1) == String.charAt(2){
//I want to remove the individual character at index 2.
}
답변
StringBuilder
변경 가능한 클래스를 사용할 수도 있습니다 .
StringBuilder sb = new StringBuilder(inputString);
이 메소드 deleteCharAt()
에는 다른 많은 mutator 메소드와 함께 메소드가 있습니다.
삭제해야 할 문자를 삭제 한 후 다음과 같이 결과를 얻으십시오.
String resultString = sb.toString();
이렇게하면 불필요한 문자열 객체가 생성되지 않습니다.
답변
하나의 가능성 :
String result = str.substring(0, index) + str.substring(index+1);
Java의 문자열은 변경할 수 없으므로 결과는 새로운 문자열 (두 개의 중간 문자열 오브젝트)입니다.
답변
replace라는 Java String 메소드를 사용할 수 있습니다. 그러면 첫 번째 매개 변수와 일치하는 모든 문자가 두 번째 매개 변수로 대체됩니다.
String a = "Cool";
a = a.replace("o","");
답변
Java의 문자열은 변경할 수 없으므로 아니요. 원하지 않는 문자를 제거하여 새 문자열을 만들어야합니다.
string의 c
색인 위치 idx
에서 단일 문자를 바꾸려면 str
다음과 같이하고 새 문자열이 작성됩니다.
String newstr = str.substring(0, idx) + str.substring(idx + 1);
답변
String str = "M1y java8 Progr5am";
deleteCharAt ()
StringBuilder build = new StringBuilder(str);
System.out.println("Pre Builder : " + build);
build.deleteCharAt(1); // Shift the positions front.
build.deleteCharAt(8-1);
build.deleteCharAt(15-2);
System.out.println("Post Builder : " + build);
바꾸다()
StringBuffer buffer = new StringBuffer(str);
buffer.replace(1, 2, ""); // Shift the positions front.
buffer.replace(7, 8, "");
buffer.replace(13, 14, "");
System.out.println("Buffer : "+buffer);
숯[]
char[] c = str.toCharArray();
String new_Str = "";
for (int i = 0; i < c.length; i++) {
if (!(i == 1 || i == 8 || i == 15))
new_Str += c[i];
}
System.out.println("Char Array : "+new_Str);
답변
다음 코드를 고려하십시오.
public String removeChar(String str, Integer n) {
String front = str.substring(0, n);
String back = str.substring(n+1, str.length());
return front + back;
}
답변
(거대한) 정규식 기계를 사용할 수도 있습니다.
inputString = inputString.replaceFirst("(?s)(.{2}).(.*)", "$1$2");
"(?s)" -
정규 문자처럼 줄 바꿈을 처리하도록 regexp에 지시합니다 (경우에 따라)."(.{2})" -
정확히 2 자 수집하는 $ 1 그룹"." -
인덱스 2의 모든 문자 (압착)"(.*)" -
나머지 inputString을 수집하는 $ 2 그룹."$1$2" -
그룹 $ 1과 그룹 $ 2를 하나로 묶습니다.