문자열 삽입
public class Insert {
public static void main(String[] args) {
String str = "hello";
String ch = "world";
int k = 3;
String insertStr = insertString(str, ch, k);
System.out.println(insertStr);
}
static String insertString(String str, String ch, int k) {
StringBuilder sb = new StringBuilder(str);
sb.insert(k, ch);
return sb.toString();
}
}
원본 str 문자열에서 k번째 인덱스에 ch 문자열을 삽입합니다.
문자열 수정
public class Modify {
public static void main(String[] args) {
String str = "hello world";
int k = 3;
char ch = 'h';
String modifyStr = modifyString(str, ch, k);
System.out.println(modifyStr);
}
static String modifyString(String str, char ch, int k) {
return str.substring(0, k) + ch + str.substring(k+1);
}
}
원본 str 문자열에서 k번째 인덱스에 있는 문자를 ch로 교체합니다.
문자열 삭제
public class Delete {
public static void main(String[] args) {
char[] s = "hello world".toCharArray();
removeChar(s,'l');
System.out.println(new String(s));
}
static void removeChar(char[] s, char c) {
int j = 0;
for(int i = 0; i < s.length; i++) {
if(s[i] != c) {
s[j++] = s[i];
}
}
while (j < s.length) {
s[j++] = '\0';
}
}
}
removeChar에서 문자 배열과 제거하려는 문자를 매개변수로 받습니다.
새 위치 인덱스 j를 0으로 초기화하여 배열 s를 반복하면서 각 문자가 제거 대상 문자인 c와 다른 경우에만 s[j]에 문자를 넣고 j를 증가시킵니다. 이렇게 하면 배열의 시작 부분부터 c를 제외한 모든 문자가 순서대로 복사되며, c 문자는 배열에서 제거됩니다. 반복이 끝난 후, 지정된 문자 c를 제거한 결과 남은 배열의 남은 부분을 널 문자('\0')로 채웁니다. 이는 j 인덱스부터 배열의 끝까지 진행됩니다.
문자열 비교
public class StringComparator {
public static void main(String[] args) {
String string1 = new String("hello wolrd");
String string2 = new String("hello wolrdd");
String string3 = new String("hellowolrd");
String string4 = new String("hello volrd");
String string5 = new String("hello wolrd");
System.out.println(stringCompare(string1, string2));
System.out.println(stringCompare(string1, string3));
System.out.println(stringCompare(string1, string4));
System.out.println(stringCompare(string1, string5));
}
static Boolean stringCompare(String str1, String str2) {
int l1 = str1.length();
int l2 = str2.length();
if(l1 != l2) return false;
for(int i = 0; i < l1; i++) {
int str1_ch = str1.charAt(i);
int str2_ch = str2.charAt(i);
if(str1_ch != str2_ch) {
return false;
}
}
return true;
}
}
두 문자열을 매개변수로 받습니다.
길이가 다르면 같지 않기 때문에 false를 반환합니다. 길이가 같을때 문자열의 내용을 한 글자씩 반복문에서 아스키 코드 값으로 변환 후 이용하여 비교합니다.
'알고리즘 > 자료구조' 카테고리의 다른 글
문자열 JAVA에서의 저장공간 (0) | 2024.04.19 |
---|---|
문자열 문자 출력하는 JAVA에서 8가지 방법 (0) | 2024.04.19 |
문자열이란 무엇인가? (0) | 2024.04.09 |
배열의 요소 중 특정 값 삭제하는 방법 (0) | 2024.04.09 |
배열 원소 검색으로 값 찾는 방법(선형 검색, 이진 검색, 피보나치 검색) (0) | 2024.04.09 |