-
자바 중복 문자 제거공부 2022. 2. 14. 22:43728x90
제출한 코드는 다음과 같다.
import java.util.Scanner;public class Main{public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner=new Scanner(System.in);String str=scanner.nextLine();String answer=solution(str);System.out.println(answer);return ;}public static String solution(String str) {String answer = "";char arr[]=str.toCharArray();char arr2[]=new char[arr.length];boolean check=true;arr2[0]=arr[0];answer+=arr[0];int k=1;for(int i=1;i<arr.length;i++){for(int j=0;j<k;j++){if(arr[i]==arr2[j]){check=false;break;}}if(check==true){arr2[k]=arr[i];k++;answer+=arr[i];}check=true;}return answer;}}문자열을 char 배열로 바꾼뒤 arr2에 이미 나온 문자를 집어넣었다.
만약 arr과 arr2를 비교했을 때 같은 문자가 나왔을 경우 비교를 멈췄다.
만약 같은 문자가 없을 경우 arr2에 문자를 집어 넣고, answer에 문자를 더하였다.
강의에서 indexOf()의 사용법과 charAt()의 사용법을 알려주었다.
그 방법을 이용하여 작성한 코드는 다음과 같다.
public class Main{public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner=new Scanner(System.in);String str=scanner.nextLine();String answer=solution(str);System.out.println(answer);return ;}public static String solution(String str) {String answer = "";for(int i=1;i<str.length();i++){if(str.indexOf(str.charAt(i))==i){answer+=str.charAt(i);}}return answer;}}charAt(i)를 이용하여 문자열에서 i가 위치한 곳의 문자를 알 수가 있다.
indexOf()를 이용하여 해당 문자가 처음 나온 위치를 파악할 수 있다.
charAt(i)를 이용하여 i의 문자를 파악한 후, indexOf(charAt(i))를 이용하여,
i에 해당하는 문자가 언제 처음 나왔는지 위치를 파악 가능하다.
만약 i와 indexOf(charAt(i))가 같을 경우 해당 문자는 처음 나온 것이다.
이를 이용하여 중복되지 않는 문자를 파악가능하다.
728x90반응형'공부' 카테고리의 다른 글
자바 스트림 (0) 2022.07.26 자바 예외 처리 (0) 2022.07.26 7계층 HTTP 프로토콜 (0) 2022.07.26 자바 특정 문자 뒤집기 (0) 2022.02.14 자바 단어 뒤집기 (0) 2022.02.14