자바 시리즈 12 - Scanner 와 String 류 의 사용

Scanner 와 String 의 사용
1. Scanner 의 사용
/**
 * Scanner   
 * 	1、JDK5  ,          
 * 
 * 	2、    :
 * 		public Scanner(InputStream is)
 * 		Scanner sc = new Scanner(System.in);
 * 
 * 	3、    :
 * 		A:hasNextXxx()	     xxx     
 * 		B:nextXxx() 	  xxx     
 * 
 * 	4、       
 * 		nextInt():	    int     
 * 		next()/nextLine():	    String     
 * 
 *  5、      :
 *  	int  	--->	int
 *  	String	--->	String
 *  	String	--->	int
 *  	int		--->	String
 *  	
 *  	    :
 * 			A:      String  ,     ,      
 * 			B:        Scanner  
 * */

import java.util.Scanner;
public class ScannerTest001 {
	
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		if(sc.hasNextInt()) {
			int number = sc.nextInt();
			System.out.println("number"+number);
		}else {
			String str1 = sc.nextLine();
			System.out.println("str1"+str1);
		}
		
		int x = sc.nextInt();
		
		sc = new Scanner(System.in);
		
		String y = sc.nextLine(); //          
		System.out.println(x);
		System.out.println(y);	
	}
}


2. String 류
  • String 의 구조 방법
    /**
     * 	1、   :            
     * 
     * 	2、     :	
     * 		public String():  String  
     * 		public String(byte[] bytes):          
     * 		public String(byte[] bytes,int index,int length):              
     * 		public String(char[] value):          
     * 		public String(char[] bytes,int index,int length):              
     * 		public String(byte[] bytes):          
     * 		public String(String original):         
     * 
     * 	3、  :
     * 		1、               ,          toString()  。
     * 			toString()          ...  @        
     * 			             ,        ,       toString()  
     * 		2、        
     * 			public int length()
     * 
     * 		   :   length() ?String length() ?
     * 				  				 
     * 		
     * 	4、      ,           
     * 
     * 	5、String s =  new String("hello"); String s = "hello";   
     * 		==:              
     * 		equals():         。String    equals()  ,                   
     * 
     * */
    public class StringTest001 {
    	int number=1;
    	
    	public static void main(String[] args) {
    		// public String()    String  
    		String s1 = new String();
    		System.out.println("s1:"+s1);
    		System.out.println("s1.length():"+s1.length());
    		System.out.println("--------------------------");
    		
    		// public String(byte[] bytes):          。
    		byte[] bytes = { 97, 98, 99, 100, 101 };
    		String s2 = new String(bytes); //            
    		System.out.println("s2:" + s2);
    		System.out.println("s2.length():" + s2.length());
    		System.out.println("--------------------------");
    		
    		// public String(byte[] bytes,int index,int length):               
    		// String s3 = new String(bytes, 1, 2);
    		String s3 = new String(bytes, 0, bytes.length);
    		System.out.println("s3:" + s3);
    		System.out.println("s3.length():" + s3.length());
    		System.out.println("--------------------------");
    
    		// public String(char[] value):          
    		char[] chs = { 'a', 'b', 'c', 'd', 'e', ' ', ' ', ' ' };
    		String s4 = new String(chs);
    		System.out.println("s4:" + s4);
    		System.out.println("s4.length():" + s4.length());
    		System.out.println("--------------------------");
    	
    	
    		// public String(char[] value,int index,int count):              
    		//   :         :de  
    		String s5 = new String(chs, 3, 4);
    		System.out.println("s5:" + s5);
    		System.out.println("s5.length():" + s5.length());
    		System.out.println("--------------------------");
    	
    		// public String(String original):         
    		String s6 = new String("helloworld");
    		System.out.println("s6:" + s6);
    		System.out.println("s6.length():" + s6.length());
    		System.out.println("--------------------------");
    	
    		// Java             (  "abc" )          。
    		String s7 = "helloworld";
    		System.out.println("s7:" + s7);
    		System.out.println("s7.length():" + s7.length());
    		
    		//            ,           
    		String s8 = "hello";
    		s8 += "\tworld";
    		System.out.println("s8:"+s8);
    		}
    		
    
    		//     toString,         ,         
    		public String toString() {
    			return "111";
    		}
    }
    
    
  • = = equals 와 의 용법 = =: 역할 은 주로 두 대상 의 주소 가 같 는 지 아 닌 지 를 판단 하 는 것 이다.즉, 두 대상 이 같은 대상 인지 아 닌 지 를 판단 하 는 것 이다.equals (): 작용 도 두 대상 이 동일 한 지 판단 하 는 것 이다.그러나 그것 은 일반적으로 두 가지 사용 상황 이 있다.
  • 상황 1: 클래스 가 equals () 방법 을 덮어 쓰 지 않 았 습 니 다.equals () 를 통 해 이 유형의 두 대상 을 비교 할 때 등가 는 '= =' 을 사용 하 는 것 과 비교 된다.
  • 상황 2: 클래스 가 equals () 방법 을 덮어 씁 니 다.일반적으로 우 리 는 equals () 방법 을 덮어 두 대상 의 내용 이 같 는 지 비교 합 니 다.그들의 내용 이 같다 면 트 루 로 돌아간다.
  • /**
     * 	== equals   
     * */
    public class StringTest003 {
    	public static void main(String[] args) {
    		// == equal   
    		String s1 = new String("abc");
    		String s2 = new String("abc");
    		System.out.println(s1==s2);			// false	
    		System.out.println(s1.equals(s2));	// true
    		
    		
    		String s3 = "abc";
    		String s4 = "abc";
    		System.out.println(s3==s4);			// true	
    		System.out.println(s3.equals(s4));	// true
    		
    		String s5 = "abc";
    		String s6 = new String("abc");
    		System.out.println(s5==s6);			// false	
    		System.out.println(s5.equals(s6));	// true
    	}
    }
    
    
    연습: 프로그램 보고 결과 말 하기
    /**
     * 	      
     * 	       :    ,    
     * 	       :  ,  ,      
     * */
    public class StringTest004 {
    
    	public static void main(String[] args) {
    		
    		String s1 = "Hello";	
    		String s2 = "World";
    		String s3 = "HelloWorld";
    		String s4 = s1 + s2;
    		String s5 = "Hello" + "World";
    		System.out.println(s4);
    		System.out.println(s5);
    		
    		System.out.println(s3==s4);				// false
    		System.out.println(s3=="Hello"+"World");// true	
    		System.out.println(s3==s5);				// true	
    		System.out.println(s3.equals(s4));		// true
    		System.out.println(s3.equals(s5));		// true
    	}
    }
    
    
  • String 류 의 판단 기능
    /**
     * 	String      
     * 	boolean equals(Object obj):            ,       
     * 	boolean equalsIgnoreCase(String str):            ,      
     * 	boolean contains(String str):           ,     
     * 	boolean startsWith(Stirng str):             
     * 	boolean endsWith(String str):             
     * 	boolean isEmpty():            		
     * 
     * */
    
    public class StringDemo {
    	public static void main(String[] args) {
    		String s = "helloworld";
    		System.out.println(s.equals("helloworld")); // true
    		System.out.println(s.equals("Helloworld")); // false
    		
    		System.out.println(s.equalsIgnoreCase("helloworld")); // true
    		System.out.println(s.equalsIgnoreCase("Helloworld")); // true
    		
    		System.out.println(s.contains("world")); 	// true
    		System.out.println(s.contains("Hello")); 	// false
    		
    		System.out.println(s.startsWith("hello"));	// true
    		System.out.println(s.endsWith("wrold"));	// false
    		
    		String s1 = "";
    		System.out.println(s1.isEmpty());	// true
    		System.out.println(s1 == "");		// true
    	}
    }
    
    
    사례 연습:
    /**
     * 	       :			
     * 		               ,         
     * */
    import java.util.Scanner;
    public class StringTest001 {
    
    	public static void main(String[] args) {
    		String username = "admin";
    		String password = "admin";
    		System.out.println("--------------------------");
    		System.out.println("        ");
    		System.out.println("             ");
    		System.out.println("             ");
    		System.out.println("    !");
    		System.out.println("--------------------------");
    		int i = 3;
    		while(i>0) {
    			Scanner sc = new Scanner(System.in);
    			String sc_username = sc.next();
    			System.out.println(sc_username);
    			if (sc_username.equals(username)) {
    				String sc_password = sc.next();
    				if (sc_password.equals(password)) {
    					System.out.println("    ");
    					break;
    				}
    			}
    			i-=1;
    			if (i==0) {
    				System.out.println("      ,      ");
    			}else {
    			System.out.println("   "+i+"   ");
    			}
    		}
    	}
    	
    }	
    
    
  • String 클래스 의 가 져 오기 기능
    /**
     * 	String      :
     * 		int length():        
     * 		char charAt(int index):             
     * 		int indexOf(int ch):                 
     * 		int indexOf(Stirng str):                    
     * 		int indexOf(String str,int fromIndex):                           
     * 		String substring(int start):               
     * 		String substring(int start,int end):                   ,  :     
     * 
     * */
    
    
    public class StringDemo {
    	
    	public static void main(String[] args) {
    		
    		String str1 = "hello";
    		System.out.println(str1.length());  		// 5
    		System.out.println(str1.charAt(1)); 		// e
    		// System.out.println(str1.charAt(10)); 	// index of range
    		System.out.println(str1.indexOf('h')); 		// 0
    		System.out.println(str1.indexOf("h")); 		// 0
    		System.out.println(str1.indexOf('l',3)); 	// 3
    		System.out.println(str1.substring(0)); 		// hello
    		System.out.println(str1.substring(0,3)); 	// hel
    	}
    }
    
    
    연습 1: 작은 문자열 마다 옮 겨 다 니 기
    /**
     * 	       :
     * 		        
     * 
     * */
    public class StringTest001 {
    	
    	public static void main(String[] args) {
    		String s1 = "HelloWorld";
    		for(int index=0;index<s1.length();index++) {
    			System.out.println("   "+index+"  "+s1.charAt(index));
    		}
    	}
    }
    
    
    연습 2: 통계 문자열 개수
    /**
     * 	            :    :
     * 		      
     * 		      
     * 		    
     * 
     * */
    
    import java.util.Scanner;
    public class StringTest002 {
    	
    	public static void main(String[] args) {
    		
    		Scanner sc = new Scanner(System.in);
    		String s = sc.next();
    		int bigCount= 0;
    		int smallCount= 0;
    		int intCount= 0;
    		
    		for(int i=0;i<s.length();i++) {
    			char ch = s.charAt(i);
    			if(ch >= 'A' && ch <= 'Z') {
    				bigCount+=1;
    			}else if(ch >= 'a' && ch <= 'z') {
    				smallCount+=1;
    			}else if(ch >= '0' && ch <= '9') {
    				intCount+=1;
    			}
    		}
    		System.out.println("     :"+bigCount);
    		System.out.println("     :"+smallCount);
    		System.out.println("   :"+intCount);
    	}
    }
    
    
  • String 클래스 의 변환 기능
    package com.bj.study.test006;
    
    /**
     * 	String     
     * 		byte[] getBytes():           
     * 		char[] toCharArray():           
     * 		static String valueOf(char[] chs):           
     * 		static String valueOf(int i): int          
     * 										              。
     * 		String toLowerCase():       
     * 		String toUpperCase():       
     * 		String concat(String str):      
     * 
     * */
    
    
    public class StringDemo {
    
    	public static void main(String[] args) {
    		
    		String s = "abcde";
    
    		// byte[] getBytes():           
    		byte[] bys = s.getBytes();
    		for (int x = 0; x < bys.length; x++) {
    			System.out.println(bys[x]);
    		}
    		
    		// char[] toCharArray():           
    		char[] chs = s.toCharArray();
    		System.out.println(chs);
    		for (int x = 0; x < chs.length; x++) {
    			System.out.println(chs[x]);
    		}
    		
    		// static String valueOf(char[] chs):          
    		String s2 = String.valueOf(chs);
    		System.out.println("s2:" + s2);
    		System.out.println("----------------");
    
    		// static String valueOf(int i): int          
    		int number = 100;
    		String s3 = number + "";
    		String s4 = String.valueOf(number);
    		System.out.println("s3:" + s3);
    		System.out.println("s4:" + s4);
    		System.out.println("----------------");
    
    		// String toLowerCase():       
    		// String toUpperCase():       
    		System.out.println("toLowerCase():" + "HelloWorld11  ".toLowerCase());
    		System.out.println("toUpperCase():" + "HelloWorld11  ".toUpperCase());
    		System.out.println("----------------");
    
    		// String concat(String str):      
    		String s5 = "hello";
    		String s6 = "world";
    		String s7 = s5.concat(s6);
    		String s8 = s5 + s6;
    		System.out.println("s7:" + s7);
    		System.out.println("s8:" + s8);
    		
    	}
    }
    
    
    연습: 문자열 변환
    /**
     * 	  :            :
     * 		         ,       
     * 
     * */
    import java.util.Scanner;
    public class StringTest001 {
    	
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		String s = sc.next();
    		String first = s.substring(0,1).toUpperCase();
    		String end = s.substring(1).toLowerCase();
    		
    		String newWords = first+end;
    		System.out.println(newWords);
    	}
    }
    
    
  • String 교체, 빈 칸 제거, 비교
    /**
     * 	     
     * 		String replace(char old,char new)
     * 		String replace(String old,String new)
     * 
     * 	       :
     * 		String trim():       
     * 	
     *	            :a-z
     * 	 	int compareTo(String str)
     * 		int compareToIgnoreCase(String str) 
     * 
     * */
    public class StringDemo {
    	
    	public static void main(String[] args) {
    		String s = "helloworld";
    
    		String s2 = s.replace('l', 'b');
    		System.out.println("s:" + s);
    		System.out.println("s2:" + s2);
    
    		String s3 = s.replace("owo", "ak47");
    		String s4 = s.replace("j", "h");
    		System.out.println("s3:" + s3);
    		System.out.println("s4:" + s4);
    		
    		String s5 = "    hello     ";
    		System.out.println("s5:" + s5);
    		System.out.println("s5.trim:" + s5.trim());
    		
    		String s6 = "hello";
    
    		System.out.println(s.compareTo("hello")); // 0
    		System.out.println(s.compareTo("Hello")); // 32
    		System.out.println(s.compareTo("mello")); // -5
    		System.out.println(s.compareTo("hgllo"));//           -2
    	}
    }
    
    
    연습 1: 배열 의 데 이 터 를 지정 한 형식 으로 문자열 로 연결
    /**
     * 	  :                     
     * 			  :int[] arr = {1,2,3}
     * 			  :[1,2,3]
     * 
     * */
    public class StringDemo2 {
    	public static void main(String[] args) {
    		
    		int[] arr = {1,2,3};
    		String s = "[";
    		for(int i=0;i<arr.length;i++) {
    			if(i==arr.length-1) {
    				s += arr[i];
    			}else {
    				s += arr[i]+",";
    			}
    		}
    		s += "]";
    		System.out.println(s);
    	}
    }
    
    
    연습 2: 반전 문자열
    /**
     * 	  :             	
     * 		 :  abc	
     * 			  :cba
     * */
    
    import java.util.Scanner;
    public class StringDemo3 {
    	public static void main(String[] args) {
    		
    		Scanner sc = new Scanner(System.in);
    		String s = sc.nextLine();
    		
    		String result = "";
    		for (int i=s.length()-1;i>=0;i--) {
    			result += s.charAt(i);
    		}
    		System.out.println(result);
    	}
    }
    
    
    연습 3: 긴 문자열 중 작은 문자열 의 출현 횟수 찾기
    /**
     * 	  4:                   
     * */
    public class StringDemo4 {
    	public static void main(String[] args) {
    		String maxString = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";
    		String minString = "java";
    
    		int count = getCount(maxString, minString);
    		System.out.println(count);
    		System.out.println("hello".indexOf("z",0));
    		
    	}
    
    	//      :
    	//     :String maxString,String minString;
    	//      :int
    	public static int getCount(String maxString, String minString) {
    		//       
    		int count = 0;
    
    		//      
    		int index = maxString.indexOf(minString);
    		//       ,             
    		int startIndex = 0;
    
    		//        -1,   ,     
    		while (index != -1) {
    			//      1
    			count++;
    			//          
    			startIndex = index + minString.length();
    			//         ,               
    			index = maxString.indexOf(minString, startIndex);
    		}
    
    		return count;
    	}
    }
    
    
    연습 5: 두 문자열 의 일치 여 부 를 비교
    package com.bj.study.test007;
    
    /**
     * 	  5:       ,           
     * 
     * 	  :
     * 		A:       
     * 		B:        ,    false
     * 		C:           
     * 		D:            
     * */
    public class StringDemo5 {
    	
    	public static void main(String[] args) {
    		String s1 = "abcdef";
    		String s2 = "abcd";
    		boolean result = checkString(s1,s2);
    		System.out.println(result);
    	}
    
    	private static boolean checkString(String s1, String s2) {
    		if (s1.length() == s2.length()) {
    			for(int i=0;i<s1.length();i++) {
    				if(s1.charAt(i) == s2.charAt(i)) {
    					return true;
    				}
    			}
    			return false;
    		}
    		return false;
    	}
    	
    }
    
    
  • 좋은 웹페이지 즐겨찾기