코딩테스트/프로그래머스
[프로그래머스 기초] JAVA 문자열 1
머밍
2024. 6. 29. 21:08
문자열 출력
System.out.println("a = "+a +"\n" +"b = "+b);
출력 방법
int타입 변수라 %d로 쓰기 or +를 이용하기
System.out.printf("%d + %d = %d",a,b,a+b);
System.out.println(a+ " + "+ b+" = "+(a+b));
특수문자 출력하기
\ 와 " 앞에는 \를 붙여서 입력한 문자 그대로 출력되도록 해야 한다.
-> 결과: !@#$%^&*('"<>?:;
System.out.print("!@#$%^&*(\\'\"<>?:;");
문자열의 문자 하나씩 출력
- for-each문으로 하나씩 출력
- charAt()을 이용하기
for (char ch : a.toCharArray())
System.out.println(ch);
for(int i=0; i<a.length(); i++){
System.out.println(a.charAt(i));
}
홀짝 구분하기
조건문으로 구현했지만 간단한 조건이라면 삼항 연산자를 사용하자!
삼항 연산자
조건 ? 참일 때의 값 : 거짓일 때의 값
System.out.print(n + " is "+(n % 2 == 0 ? "even" : "odd"));
if(n%2!=0){
System.out.printf("%d is odd",n);
}else{
System.out.printf("%d is even",n);
}
int answer = 0;
return answer = num%n == 0 ? 1:0 ;
int answer = 0;
return answer= (number%n==0 && number%m==0)?1:0;
문자열 함수
문자열 반복: repeat()
- 문자열 str을 n번 반복하여 출력
String str = sc.next();
int n = sc.nextInt();
System.out.println(str.repeat(n));
대소문자 바꿔서 출력하기
- 문자열.charAt(인덱스): 문자열의 특정 위치에 있는 문자를 반환하는 메소드
- Character.isUpperCase(문자열),Character.isLowerCase(문자열): 대소문자 검사
- Character.toLowerCase(문자열),Character.toUpperCase(문자열): 대소문자 변경
Scanner sc = new Scanner(System.in);
String a = sc.next();
String answer = "";
for(int i = 0; i<a.length(); i++){
char c = a.charAt(i);
if(Character.isUpperCase(c)){
answer += Character.toLowerCase(c);
}
else{
answer += Character.toUpperCase(c);
}
}
System.out.println(answer);
문자열 붙여서 출력하기
두개의 문자열을 공백없이 이어서 출력하기
-> 문자열.concat(문자열):원래 문자열을 변경하지 않음. 대신, 두 문자열을 결합한 새로운 문자열을 반환.
System.out.print(a.concat(b));
System.out.print(a+b);
문자열 겹쳐쓰기 -> 문자열 중 일부 추출하기
substring() 함수
substring(int beginIndex): 주어진 시작 인덱스부터 문자열의 끝까지의 부분 문자열을 반환.
substring(int beginIndex, int endIndex): 주어진 시작 인덱스부터 끝 인덱스 전까지의 부분 문자열을 반환.
- my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return
answer = my_string.substring(0,s);
answer += overwrite_string;
answer += my_string.substring(overwrite_string.length() + s);
문자열 섞기 -> 문자열끼리 합할때의 + 사용
P. 문자 덧셈? 두 문자의 유니코드 값이 더해져 의도와 다른 숫자가 생성됨.
A. 문자 결합: 문자를 문자열로 변환한 후 결합하면 의도한 대로 각 문자가 결합됨.
1.String.valueOf(char)
2. char + ""을 사용하여 문자를 문자열로 변환한 후 결합함.
3. 하나의 문자씩 넣어준다.
for(int i = 0; i < str1.length(); i++) {
answer += String.valueOf(str1.charAt(i)) + String.valueOf(str2.charAt(i));
}
for(int i = 0; i < str1.length(); i++) {
answer += str1.charAt(i) + "" + str2.charAt(i); }
for(int i = 0; i < str1.length(); i++){
answer+= str1.charAt(i);
answer+= str2.charAt(i);
}
정수 -> 문자열로~
Integer.toString(정수): 정수 -> 문자열~!
Integer.parseInt(문자열): 문자열 -> 정수!
class Solution {
public int solution(int[] num_list) {
int answer = 0;
String odd ="";
String even = "";
for(int i =0;i<num_list.length;i++){
if(num_list[i]%2==1){
even += Integer.toString(num_list[i]);
}
else{
odd += Integer.toString(num_list[i]);
}
}
answer = Integer.parseInt(even) + Integer.parseInt(odd);
return answer;
}
}
- 두번째로는 foreach문을 사용해서 간단히 구현함
class Solution {
public int solution(int[] num_list) {
int answer = 0;
String odd ="";
String even = "";
for(int i : num_list){
if(i % 2==0){
even += "" + i;
} else{
odd += ""+i;
}
}
answer = Integer.parseInt(even) + Integer.parseInt(odd);
return answer;
}
}