String str = new String("Hello"); //원래 명시방법
//1. 문자열 데이터의 길이(글자수)를 리턴해 주는 기능(method)
int leg = str.length();
System.out.println(leg);
//2. 문자열값 비교 기능
System.out.println(str =="Hello"); //주소값 비교하기 때문에 false
System.out.println(str.equals("Hello")); //값 자체 비교 true
String s1 = "Hello";
System.out.println(str.equals(s1));
System.out.println("Hello".equals(s1)); // "Hello" 가 객체인 이유 .했을때 메소드가 나옴
//2-1대소문자 비교
System.out.println(str.equals("hello")); //flase - 아스키코드가 다르니까 대소문자 구분
System.out.println(str.equalsIgnoreCase("hello")); //ture - 대소문자 무시
//3.문자열 안에서 큭정 char만 얻어오기
char ch =str.charAt(0);
System.out.println("한 문자 " + ch); //
System.out.println(str.charAt(1)); //
System.out.println(str.charAt(2)); //
System.out.println(str.charAt(3)); //
System.out.println(str.charAt(4)); //
for(int i=0;i<str.length(); i++) {
System.out.println(str.charAt(i));
}
//Scanner 객체를 이용하여 char한문자 입력 받아보기
Scanner sc = new Scanner(System.in);
String s2 = sc.next(); //문자열로 입력 받아서
char c = s2.charAt(0); // 한문자 꺼내기
System.out.println("c : "+c);
//4.문자열안에 특정한 문자열이 포함되어 있는지 여부
String s = "Hello world! Hello android! nice world";
boolean b =s.contains("world");
System.out.println(b);
//5.문자열안에 특정한 문자열이 몇번째 위치에 있는지 리턴
int index = s.indexOf('A');
System.out.println(index); //-1 빈환 없단 뜻이지
System.out.println(s.indexOf('e')); //여러개면 첫번째거 알려줌
System.out.println(s.lastIndexOf('e')); //뒤에서 부터 찾는 메소드
//5-1. 특정 문자열의 시작위치도 알려줌
index = s.indexOf("android");
System.out.println(index);
//5-2. 특정 위치부터 검색 요청도 가능
index = s.indexOf("Hello", 5); //5번 인덱스 위치부터 검색 시작
System.out.println(index);
//6. 문자열을 결함하는 기능
String sss = s.concat(" Nice Android"); //concat은 두개의 글씨를 붙이면 원래 있는 것에 붙이는 게 아니고
//두개를 붙인 새로운 글씨를 메모리에 저장한 것이다
System.out.println("원본 s : "+s); ///원본 불변
System.out.println("붙인 : "+sss);
//.concat()은 잘 사용하지 않음. why? 결합 연산자(+)의 제공때문
String s4 = s + " Hi Hi"; // + 가 내부적으로 concat 을 해줌
System.out.println(s4);
//7. 문자열이 특정한 문자열로 시작되는지 여부
System.out.println( s.startsWith("Hello") ); //ture
System.out.println( s.startsWith("world") ); //false
//7-1. 특정문자열로 종료되는지 여부
System.out.println(s.endsWith("Hello"));
System.out.println(s.endsWith("world"));
//8. 대소문자
System.out.println(s.toUpperCase());
System.out.println(s.toLowerCase());
System.out.println(s);
//원본을 바꾸고 싶으면 원본참조'변수'에 새로운 문자열객체를 대입
s = s.toUpperCase();
System.out.println(s);
//9. 문자열의 앞뒤 공백 제거
s= " Hello ";
System.out.println("["+s+"]");
s=s.trim();
System.out.println("["+s+"]");
//10. 특정문자 바꿔치기
s="Hello world! Hello android! nice world!";
System.out.println(s.replace('o', ' ')); //있는 건 다 바뀜
//10-1.
System.out.println(s.replace("android", "ios")); //비속어 걸러내기 가능
//10-2.중간 공백문자 삭제
System.out.println(s.replace(" ", "")); // "" : 빈 문자열
//11.문자열 잘라내기
System.out.println(s.substring(6)); //6번 뒤로 있는 문자열을 잘라내서 리턴
//11-1 범위지정 자르기
System.out.println(s.substring(6, 12));//6~11번 까지
//12. 문자열값의 대소비교[문자열 정렬때 사용] => 안씀~
String s7 = "aad";
String s8 = "bbb";
//System.out.println(s7 < s8 ); //주소끼리 대소비교해서 error
System.out.println(s7.compareTo(s8)); //-3 => 아스키번호 차이 알려줌
System.out.println(s8.compareTo(s7)); //3
//13. 문자열을 특정문자를 기준으로 분리해서 여러개의 문자열 배열로 리턴
s = "android,ios,web";
//s = "android,ios,web,"; //빈문자열은 버전업되면서 무시해줌
String[] arr =s.split(",");
for(int i=0;i < arr.length; i++) { //배열은 lenth를 멤버변수로 가지고 있다
System.out.println(arr[i]);
}
객체없이 사용하는 static 메소드
//객체없이 사용하는 static 메소드
//static 메소드 : 객체 생성 없이 사용할 수 있는 메소드
// 클래스명.메소드명();
//1. 특정 포멧(몸양/형식)의 문자열을 생성하고 싶을 떄 사용하는 기능(new 대신)
int hour = 13;
int min = 15;
int sec = 24;
System.out.println(hour + ":" + min + ":" + sec);
//근무환경에서는
String ss = String.format("%02d : %02d : %02d", hour, min,sec);
System.out.println("시간 : "+ss);
//2. .valueOf() : 기본형 자료형 (primitive)를 객체로 변환하는 메소드
int num = 100;
String s10 = String.valueOf(num); // 100 --> "100"
System.out.println(s10.length()); //객체가 됨
String s11 = String.valueOf(3.14); // 100 --> "100"
System.out.println(s11.length()); //객체가 됨
String s12 = String.valueOf(true); // 100 --> "100"
System.out.println(s12.length()); //객체가 됨
//GUI 환경에서 기본형을 문자열로 변동하는 코드는 빈번함
//하지만 자주 사용되지않음 => 결함연산자 +를 이용하면 더 편해서
String s13 = 1000 + "";
System.out.println(s13.length()); //객체가 됨
//반대로, 문자열을 기본형으로 반환하고 싶다면?
//이 기능을 가진 클래스들은 static 메소드를 사용
// 이런 클래스를 Wrapper 클래스(8개)라고 부름 :
//Boolean, Byte, Character, Short, Integer, Long, Float, Double
String s14 = "5";
String s15 = "1";
int aaaaaaa = Integer.parseInt(s14) / Integer.parseInt(s15);
System.out.println(aaaaaaa);
int n = Integer.parseInt("5000");