String 클래스
String 클래스의 메소드
import java.util.Scanner;
//가장 기본적인 문자열 메소드
public class StringTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("문자열을 입력");
String input = sc.nextLine();//hello(공백 5칸)
stringPrint(input);
//정적메소드에서 정적메소드 호출(같은 클래스내이므로 클래스명 생략가능)
}
public static void stringPrint(String s) {
System.out.println("s=>"+s);
//1.concat()=> 문자열 결합
System.out.println("s.concat(\"test\")=>"+s.concat("test"));//hello test
//2.substring(시작인덱스(필수입력),종료인덱스(바로 앞번호까지 인식)
System.out.println("s.substring(1, 4)=>"+s.substring(1, 4));//ell
System.out.println("s.substring(1, 4)=>"+s.substring(1));//ello
//3.toUpperCase() : 대문자로 변환 <-> toLowerCase() : 소문자로 변환
System.out.println("s.toUpperCase()=>"+ s.toUpperCase());//HELLO
System.out.println("s.toLowerCase()=>"+ s.toLowerCase());//hello
//4.replace(변경전단어, 변경후단어) => 특정 문자열 변경
System.out.println("s.replace('l','t')=>"+s.replace('l','t'));//hetto
//5.length() =>문자열의 길이(공백도 문자열에 포함시킴)
//배열의 길이는 배열명.length으로 length()와는 다름
System.out.println("s.length()=>"+s.length());//10
//6.charAt(인덱스번호) => 특정 위치의 문자를 출력
System.out.println("s.charAt(2)=>"+s.charAt(2));// l
//7.indexOf('찾는문자') => 특정 문자의 위치 출력
//찾는 문자열을 못찾으면 인덱스번호 -1리턴
System.out.println("s.indexOf('e')=>"+ s.indexOf('e'));//1
//8.trim() => 공백제거
System.out.println("s.trim().length() =>"+ s.trim().length());//5
}
}
String 객체를 만드는 방법(주소값 비교)
1) String 문자열객체="저장할값"; ( 권장 )
저장할 문자열이 전에 없다면 새로 공간을 만들어서 저장하고
이미 저장할 문자열과 똑같은 객체가 있다면 주소를 공유하여 사용한다
2) String 문자열객체 = new String("저장할값");
무조건 새로운 공간을 만들면서 문자열을 저장한다, 내용이 같아도 새로운 공간을 만들어 주소가 다르게 된다
메모리가 낭비되는 방법으로 실제로는 사용하지 않는다
//문자열 객체를 만드는 방법 2가지
public class StringTest2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1)
String str1="abc";
String str2="abc";
//2)
String str3 = new String("abc");
String str4 = new String("abc");
System.out.println("---방법의 차이점---");
System.out.println("<1번 방법>");
//== 주소비교, equals()는 문자열 비교
if(str1==str2)
System.out.println("str1과 str2는 주소가 같다");
else
System.out.println("str1과 str2는 주소가 다르다");
if(str1.equals(str2))
System.out.println("str1과 str2는 내용이 같다");
else
System.out.println("str1과 str2는 내용이 다르다");
System.out.println("<2번 방법>");
if(str3==str4)
System.out.println("str3과 str4는 주소가 같다");
else
System.out.println("str3과 str4는 주소가 다르다");
if(str3.equals(str4))
System.out.println("str3과 str4는 내용이 같다");
else
System.out.println("str3과 str4는 내용이 다르다");
}
}
/*
---방법의 차이점---
<1번 방법>
str1과 str2는 주소가 같다
str1과 str2는 내용이 같다
<2번 방법>
str3과 str4는 주소가 다르다
str3과 str4는 내용이 같다 */
Character 클래스
예) 사용자로부터 값을 입력받아 대문자면 소문자로, 소문자면 대문자로 변환하기
import java.util.Scanner;
public class ConvertTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("문자열을 입력?");
String input=sc.nextLine();
char ch;
for(int i=0;i<input.length();i++) {
ch=input.charAt(i);
if(Character.isUpperCase(ch))//true
System.out.print(Character.toLowerCase(ch));
else
System.out.print(Character.toUpperCase(ch));
}
}
}
/*
문자열을 입력?
AdsDL
aDSdl
*/
예2) 값을 입력받아 대문자면 소문자로, 소문자면 대문자로 변환하기는데
e/E 입력하면 종료, 문자열에 숫자가 들어가면 종료하기
import java.util.Scanner;
public class ConvertTest2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
char ch;
while(true) {
String str="";
System.out.println("문자열을 입력?");
String input=sc.nextLine();
if(input.equals("e") || input.equals("E")) {
System.out.println("-종료-");
System.exit(0);
}
for(int i=0;i<input.length();i++) {
ch=input.charAt(i);
if(Character.isDigit(ch)) {
System.out.println("영문자만 입력가능합니다\n-종료-");
System.exit(0);
}
if(Character.isUpperCase(ch))//true
str+=Character.toLowerCase(ch);
else
str+=Character.toUpperCase(ch);
}
System.out.println(str);
}
}
}
/*
문자열을 입력?
ADsfjE
adSFJe
문자열을 입력?
E1FG3
영문자만 입력가능합니다
-종료-
*/
wrapper 클래스
자바의 기본형에 해당하는 데이터를 객체로 만들어주는 클래스
ex) Charater 클래스, Integer 클래스
* API문서 참조
Deprecated -> 현재 사용하지 않고 다른 메소드로 대체되었다
(isSpace (x)-> isWhilespace(o))
'JAVA' 카테고리의 다른 글
[JAVA]인터페이스, 인터페이스 상속, 인터페이스 구현 (0) | 2021.01.29 |
---|---|
[JAVA]추상클래스 + 인터페이스/ 도형 면적 구하기 (0) | 2021.01.28 |
[JAVA]static/ final/ 추상클래스 추상메소드 (0) | 2021.01.26 |
[JAVA]자바 객체 생성/ CallByValue/ CallByReference (0) | 2021.01.25 |
[JAVA]접근지정자 private, default, protected, public / 라이브러리 (0) | 2021.01.22 |