next().charAt(0) ⇒ 문자를 입력받고 입력받은 문자의 0번지 값을 출력하는 코드
import java.util.Scanner;
public class StringTest1 {
//charAt()메소드예제
public static void main(String[] args) {
/* 문자를 입력받고 입력받은 문자의 0번지 값을 출력하는 코드를 작성*/
Scanner scan = new Scanner (System.in);
System.out.print("문자를 입력하세요: ");
char op = scan.next().charAt(0); //next().charAt(번지) =>next()메소드 + charAt()메소드
//메소드가 연달아 나오는 체이닝기법*
//char op = scan.next().charAt(0) 을 다른 코드로 쓴다면 아래 두 줄과 같음
//String str =scan.next();
//char op = str.charAt(0);
System.out.println(op);
scan.close();
}
}
.equals ⇒ 단어가 같은지 equals를 사용해서 비교하는 코드
import java.util.Scanner;
public class StringTest2 {
//equals예제
public static void main(String[] args) {
/* "홍길동"이라는 단어와 "홍길동"이라는 단어가 같은지 equals를 사용해서 비교하는 코드 */
System.out.println("홍길동".equals("홍길동")); //결과값 boolean=>참/거짓
/*두 단어를 입력받아 두 단어가 같은 단어인지 확인하는 코드를 작성하세요.*/
Scanner scan = new Scanner(System.in);
System.out.print("두 단어를 입력하세요(예: 홍길동 홍길동): ");
String w1 = scan.next();
String w2 = scan.next();
// System.out.print(w1.equals(w2)); 를 아래와 같이 멋드러지게~yay
if(w1.equals(w2)) {
System.out.println(w1+ "과 "+ w2+"는 "+ "같은 단어입니다.");
}else {
System.out.println(w1+ "과 "+ w2+"는 "+ "다른 단어입니다.");
}
scan.close();
}
}
.indexOf() ⇒ 를이용하여 겹치는 단어의 번지 수 알아내기, 두 단어를 입력받고 중복되는지 확인하는 코드
import java.util.Scanner;
public class StringTest3 {
public static void main(String[] args) {
/* .indexOf()를 사용하여 포함된, 겹치는 단어의 번지 수 알아내기*/
System.out.println("abcde".indexOf("bc")); //값: 1 번지
System.out.println("abcde".indexOf("dsf")); //값: -1 없음
System.out.println("abcde".indexOf("e")); //값: 4 번지
/*두 단어, 단어A와 단어B를 입력받고 단어A에 단어B가 있는지 없는지 확인하는 코드를 작성하세요*/
Scanner scan = new Scanner (System.in);
System.out.print("단어를 입력하세요: ");
String w1=scan.next();
System.out.print("중복여부를 확인할 단어를 입력하세요: ");
String w2=scan.next();
if((w1.indexOf(w2))>=0) {
System.out.print(w1+"에는 "+ w2+"(이)가 있습니다.");
}else {
System.out.print(w1+"에는 "+ w2+"(이)가 없습니다.");
}
scan.close();
}
}
.length() ⇒ 문자열의 길이를 확인하는 코드
import java.util.Scanner;
public class StringTest3 {
public static void main(String[] args) {
//문자열의 길이를 확인할 때, .length()를 이용! =>얘는 length뒤에 괄호가 있음!! // 배열 : 배열이름.length는 뒤에 괄호가 없음***
System.out.println("abcde".length());
scan.close();
}
}
.replace(A,B) 를이용하여 단어바꾸기 + 바뀐단어 저장하기
import java.util.Scanner;
public class StringTest4 {
public static void main(String[] args) {
/* .replace(A,B) 를이용하여 "제 이름은 홍길동입니다." 를 임꺽정으로 바꾸기*/
System.out.println("제 이름은 홍길동입니다.".replace("홍길동","임꺽정"));
/* 문자열C를 입력받고, 해당 단어에 문자열A와 문자열B를 입력받아 문자열C에 있는 문자열 A를 문자열 B로 바꾸는 코드를 작성하세요.*/
//문자열C 는 A를 가지고있고, A=>B
Scanner scan= new Scanner(System.in);
System.out.print("문자열을 입력하세요: ");
String wordC = scan.next();
System.out.print("입력된 문자열 중에서 수정하고싶은 단어와 수정할 단어를 입력하세요: ");
String wordA = scan.next();
String wordB = scan.next();
if(wordC!=null && wordC.indexOf(wordA)!=-1) {
wordC=wordC.replace(wordA, wordB); //원래값이 .replace(A.B)로는 바뀌지 않으니 저렇게 좌항에써서 값저장해주기
}else {
System.out.println("잘못된 입력입니다.");
}
System.out.println(wordC);
scan.close();
}
}
.substring()를 이용하여 부분의 값만 출력하는 코드 + (예외처리)
import java.util.Scanner;
public class StringTest5 {
public static void main(String[] args) {
/*.substring()를 이용하여 "안녕하세요."에서 "하세요."만 출력하는 코드*/
System.out.println("안녕하세요.".substring(2));
/*.substring(A,B)를 이용하여 "안녕하세요."에서 "녕하"만 출력하는 코드*/
System.out.println("안녕하세요.".substring(1,3));
/* 주민등록번호를 입력해서 생년월일 부분을 추출하여 년도 월 일을 출력하는 코드를 작성하세요.
* 예시:
* 주민번호를 입력하세요 : 020101-3234567
* 2002년 1월 1일
*
* 예시:
* 주민번호를 입력하세요 : 020101-1234567
* 1902년 1월 1일
* */
Scanner scan = new Scanner (System.in);
System.out.print("주민등록번호를 입력하세요(예: 000000-0000000): ");
try {
String num=scan.next();
String year=num.substring(0,2);
String month=num.substring(2,4);
String day=num.substring(4,6);
String gender=num.substring(7,8);
if(gender.equals("1") || gender.equals("2")) {
System.out.println("19"+year+"년 "+ month+"월 "+ day+"일 ");
}else if(gender.equals("3") || gender.equals("4")) {
System.out.println("20"+year+"년 "+ month+"월 "+ day+"일 ");
}else {
System.out.println("잘못된 입력입니다.");
}
}catch(Exception e){
e.printStackTrace(); //어떤오류인지 잡아내는 코드 (출력빨간색 에러난거 아님)
System.out.println("잘못된 입력입니다.");
}
scan.close();
}
}
.toUpperCase() 을 이용하여 대문자로 , to.LowerCase()를 이용하여 소문자로, .trim()을 이용하여 공백제거, String.valueOf()로 괄호안을 문자열로 만들기
public class StringTest6 {
public static void main(String[] args) {
//.toUpperCase() 를 사용하여 "abcdefghijklmnop" 를 모두 대문자로 바꿔 출력하는 코드
System.out.println("abcdefghijklmnop".toUpperCase());
//.toLowerCase() 를 이용하여 "QRSTUVWXYZ"를 소문자로 바꿔 출력하는 코드
System.out.println("QRSTUVWXYZ".toLowerCase());
//.trim() 을 이용하여 "\\n\\n\\n\\n\\n 123 4567 \\n910"에서 공백을 제거하여 출력하는 코드
String str = "\\n\\n\\n\\n\\n 123 4567 \\n";
System.out.println(str);
System.out.println(str.trim()); //문자열전후의 공백은 사라졌으나 123과 4567사이의 공백은 존재함**
//String.valueOf() 는()괄호 안을 문자열로 만들어줌
String num1 = "22";
int num2 = 20;
System.out.println(num1 + num2); //문자열"22"+정수이기 때문에 값이 2220으로 문자열이 나옴
String num3=String.valueOf(num2); //num3는 num2의 기본타입 정수값을 문자열로 저장한 값으로 문자열20임
System.out.println(num3 + num2); //num3이 문자열이기때문에 2020으로 문자열이 나옴
System.out.println(num2*2); //num2*2=40으로 num2가 기본정수임=>num1, num3은 문자열이라 계산이안됐음
}
}