- 변하지 않는 문자열
- 변하는 문자열을 쓸 때는 StringBuffer 나 StringBuilder 등을 사용한다.
메소드
- char a = s.charAt(Index)
- 문자열에서 n번째 문자 뽑기
package com.kosta.exam01;
public class CharAtTest {
public static void main(String[] args) {
String data = "hello java";
String year = "2024";
char a = data.charAt(0);
int c2 = year.charAt(0);
int c3 = (int)year.charAt(0);
int c4 = Integer.parseInt(year.charAt(0)+"");
System.out.println(a);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
}
}
- int len = s.length();
- 문자열 길이 반환
package com.kosta.exam01;
public class CharAtTest2 {
public static void main(String[] args) {
int n = 0;
String data = "hello java";
System.out.println(data.length());
for(int i = 0; i < data.length(); i++) {
char ch = data.charAt(i);
if(ch == 'a')
n++;
}
System.out.println(n);
}
}
- boolean a = s1.equals(s2);
- 문자열이 같은지 확인
package com.kosta.exam01;
import java.util.Scanner;
//사용자한테 아이디와 암호를 입력받아서 올바른지 판별하는 프로그램
//(아이디 : kosta, 암호 : 1234)
public class CharAtTest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String id = "kosta";
String pw = "1234";
System.out.print("아이디 ==> ");
String ansId = sc.next();
System.out.print("비밀번호 ==> ");
String ansPw = sc.next();
if(ansId.equals(id) && ansPw.equals(pw))
System.out.println("어서오세요!");
else
System.out.println("아이디와 비번 확인 필요");
}
}
- boolean b = s1.equalsIgnoreCase()
- 대소문자 구분 없이 같나 비교
package com.kosta.exam01;
import java.util.Scanner;
//사용자한테 아이디와 암호를 입력받아서 올바른지 판별하는 프로그램
//(아이디 : kosta, 암호 : 1234)
public class EqualsTest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String id = "kosta";
String pw = "1234";
System.out.print("아이디 ==> ");
String ansId = sc.next();
System.out.print("비밀번호 ==> ");
String ansPw = sc.next();
if(ansId.equalsIgnoreCase(id) && ansPw.equals(pw))
System.out.println("어서오세요!");
else
System.out.println("아이디와 비번 확인 필요");
}
}
- String s2 = s1.toUppercaseCase(); //String s2 = s1.toLowerCase();
- 문자열을 대문자// 소문자로 전부 변경하여 반환
package com.kosta.exam01;
import java.util.Scanner;
//사용자한테 아이디와 암호를 입력받아서 올바른지 판별하는 프로그램
//(아이디 : kosta, 암호 : 1234)
public class EqualsTest3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String id = "kosta";
String pw = "1234";
System.out.print("아이디 ==> ");
String ansId = sc.next();
System.out.print("비밀번호 ==> ");
String ansPw = sc.next();
//메소드 체이닝 -> 메소드 연결해서 동작
if(ansId.toLowerCase().equals(id) && ansPw.toUpperCase().equals(pw))
System.out.println("어서오세요!");
else
System.out.println("아이디와 비번 확인 필요");
}
}
- trim() : String s2 = s1.trim();
- 문자열 앞 뒤 공백을 제거하여 반환
package com.kosta.exam01;
public class TrimTest {
public static void main(String[] args) {
String data = " hello my name is choimorae ";
System.out.println(data.length());
System.out.println("|"+data+"|");
String data2 = data.trim();
System.out.println(data2.length());
System.out.println("|"+data2+"|");
}
}
- String s = String.valueOf(바꿀 다른 자료형 변수 등);
- 다른 자료형을 모두 문자열로 바꿔준다.
- 쉽게 + ""을 해도 바뀐다. 단 아까의 문자로 된 배열은 바뀌지 않는다.
package com.kosta.exam01;
public class ValueOfTest {
public static void main(String[] args) {
int year = 2024;
String data_year = String.valueOf(year);
double height = 56.7;
String data_height = String.valueOf(height);
boolean flag = false;
String data_flag = String.valueOf(flag);
char[]arr = {'h','e','l','l','o'};
String data_arr = String.valueOf(arr);
System.out.println(data_year);
System.out.println(data_height);
System.out.println(data_flag);
System.out.println(data_arr);
}
}
- int n = s1.indexOf(s2);
- String 을 매개변수를 주면 그 String 이 위치하는 인덱스를 준다. 단, 없으면 -1을 준다.
- int n = s3.indexOf(s4, n);
- String과 int n 을 매개변수를 주면 그 n부터 해당 문자열을 찾게 된다.
package com.kosta.exam01;
public class IndexOfTest {
public static void main(String[] args) {
String data = "hello java";
int n = data.indexOf('e');
System.out.println(n);
}
}
package com.kosta.exam01;
public class IndexOfTest2 {
public static void main(String[] args) {
String data = "hello java hello oracle";
int n = data.indexOf("e", 2);
System.out.println(n);
}
}
- int n = s.lastIndexOf(int ch)
- 뒤에서부터 찾아 위치를 반환하는 함수
package com.kosta.exam01;
public class LastIndexOf {
public static void main(String[] args) {
String data = "java";
int n1 = data.indexOf('a');
int n2 = data.lastIndexOf('a');
System.out.println(n1);//1
System.out.println(n2);//3
}
}
- String s2 = s1. substring(num1, num2)
- s1 문자열을 num1 부터 num2 까지 잘라서 문자열을 반환한다.
- 단, num 1은 포함하지만(inclusive) num2는 포함하지 않는다.(exclusive)
- num2를 적지 않을 경우 num1부터 끝까지 문자열을 반환한다.
package com.kosta.exam01;
public class substringTest {
public static void main(String[] args) {
String data = "hello java";
String str1 = data.substring(1, 7);
System.out.println(str1);
System.out.println(data.substring(1));
}
}
- boolean n = s1.startsWith(s2)
- s1 문자열이 s2로 시작하는지 검사하고 boolean값을 리턴
- boolean n = s1.endsWith(s2)
- s1 문자열이 s2로 끝나는지 검사하고 boolean값을 리턴
package com.kosta.exam01;
public class StartWithEndsWith {
public static void main(String[] args) {
String data = "hello java";
boolean flag1 = data.startsWith("hello");
boolean flag2 = data.endsWith("java");
boolean flag3 = data.endsWith("oracle");
System.out.println(flag1);
System.out.println(flag2);
System.out.println(flag3);
}
}
- s2 = s1.replace(str1, str2)
- 문자열에 포함된 str1을 str2로 바꿈
package com.kosta.exam01;
public class replaceTest {
public static void main(String[] args) {
String data = "hello java hello oracle";
String data2 = data.replace("hello", "안녕");
System.out.println(data);
System.out.println(data2);
}
}
- replaceAll--> replace 에서 정규표현식도 쓸수 있는것
package com.kosta.exam01;
public class replaceTest {
public static void main(String[] args) {
String data = "hello java hello oracle";
//String data2 = data.replace("hello", "안녕");
String data2 = data.replaceAll(".", "안녕");
System.out.println(data);
System.out.println(data2);
}
}
- boolean s = s.contains(str)
- 문자열이 포함되어있는지 확인
package com.kosta.exam01;
//문자열 데이터에 java를 포함하고 있는지 확인
public class indexOfContains {
public static void main(String[] args) {
String data = "hello java hello oracle";
if(data.contains("java")){
System.out.println("자바 포함");
}else {
System.out.println("자바 포함 안함");
}
}
}
- String []arr = s.split(String regex)
- 정규표현식 또는 일반 문자열을 기준으로 잘라서 문자열 배열로 반환한다.
package com.kosta.exam01;
public class SplitTest {
public static void main(String[] args) {
String data = "홍석영,임유나,변시우,조영흔,유요한";
String []arr = data.split(",");
for(String s: arr)
System.out.println(s);
}
}
- StringTokenizer: 분리 담당 클래스(java.util에 존재한다. )
- 위의 split 메소드는 String 의 메소드이며 문자열을 특정 문자로 분리하여 배열을 반환하는 메소드입니다. 이러한 문자열을 분리하는 기능은 상당히 많이 이용되어집니다.
- 위의 방법처럼 문자열을 분리할 수도 있고 문자열 분리 담당하는 StringTokenizer를 이용하여 문자열을 분리할 수도 있어요
- import java.util.StringTokenizer;
- StringTokenizer st = new StringTokenizer(data, " ");
- 분리된 데이터(값) 하나하나를 토큰이라고 불러요.
- 보통은 토큰이 있는만큼 반복 실행한다.
- 토큰을 하나씩 꺼내오는 메소드가 nextToken();
- 토큰이 있는지 판단을 또 해줘야 한다.
- 매개변수
- 1: 어떤 문자열로 처리할건지
- 2: 기본적으로는 공백(매개변수 안준거)
- 3: 분리한 글자를 어떤 것으로 연결해서 토큰으로 만들기
package com.kosta.exam01;
import java.util.StringTokenizer;
public class SplitTestStringTokenizer {
public static void main(String[] args) {
String data = "홍석영 임유나 변시우 조영흔 유요한";
StringTokenizer st = new StringTokenizer(data);
System.out.println(st.nextToken());
while(st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
}
'Kosta DevOps 과정 280기 > Java' 카테고리의 다른 글
문자열 처리 (0) | 2024.05.28 |
---|---|
정규표현식 (0) | 2024.05.27 |
파일 입출력 (0) | 2024.05.24 |
난수 (0) | 2024.05.23 |
동적인 배열 Set, List, Map (0) | 2024.05.23 |