1. 程式人生 > >Java——Scanner類與String類的常用方法應用

Java——Scanner類與String類的常用方法應用

Scanner的概述和方法
            final修飾,不能被繼承
            System.in 標準的鍵盤錄入
            hasNextInt() 判斷鍵盤錄入是否是int型整數,如果是,則返回true,否則為false 
                hasNextXxx    用來判斷下一個判斷是否是Xxx型
                nextXxx        獲取下一個輸入項
            public String nextLine():獲取一個String型別的值
             (以下例子,解釋如何獲取多個int值或者多個String的值,或者兩者一起獲取的情況)
         
         String類的概述和方法
             final修飾,不能被繼承,字串是常量,一旦被賦值,就不能被改變
             構造方法: public String()                    空構造
                     public String(byte[] bytes)        把位元組陣列轉換字串
                     public String(byte[] bytes,int index,int length)    把位元組陣列的一部分轉成字串 
                     public String(char[] value)        把字元陣列轉成字串
                     public String(char[] value,int index,int count)        把字元陣列的一部分轉成字串
                     public String(String original)    把字串常量轉換成字串
                     
             boolean:
                     boolean equals(Object obj)        比較字串的內容是否相同,區分大小寫
                     boolean equalsIgnoreCase(String str)    比較字串的內容是否相同,忽略大小寫
                     boolean contains(String str)            判斷大字串中是否包含小字串
                     boolean startsWith(String str)            判斷字串是否以某個指定的字串開頭
                     boolean endsWith(String str)            判斷字串是否以某個指定的字串結尾
                     boolean isEmpty()                        判斷字串是否為空
                     
             獲取功能:
                     int length()                獲取字串的長度
                     char charAt(int index)        獲取指定索引位置的字元
                     int indexOf(int ch)            返回指定字元在此字串中第一次出現處的索引
                     int indexOf(String str)        返回指定字串在此字串中第一次出現處的索引
                     int indexOf(int ch,int fromIndex)            返回指定字元在此字串中從指定位置後第一次出現處的索引
                     int indexOf(String str,int fromIndex)        返回指定字串在此字串中從指定位置後第一次出現處的索引    
                     lastIndexOf                                    從後向前找,但是索引還是從前向後數
                     String substring(int start)                    從指定位置開始擷取字串,預設到結尾
                     String substring(int start,int end)            從指定位置開始到指定位置結束擷取字串
             
             轉換功能:
                     byte[] getBytes()            把字串轉換為位元組陣列
                     char[] toCharArray()        把字串轉換為字元陣列
                     static String valueOf(char[] chs)        把字元陣列轉換成字串
                     static String valueOf(int i)            把int型別的資料轉換成字串
                         String類的valueOf方法可以把任意型別的資料轉成字串
                     String toLowerCase()        把字串轉成小寫
                     String toUpperCase()        把字串轉成大寫
                     String concat(String str)   把字串拼接
                     
             其他功能:
                     String replace(char old,char new)
                     String replace(String old,String new)
                     String trim()                去除字串兩端的空格
                     
                     按字典順序比較兩個字串
                     int compareTo(String str)
                     int compareToIgnoreCase(String str)

最後寫了兩個方法,分別是字串的反轉和在父字串中尋找子字串出現的次數

package pra_06;

import java.util.Scanner;

public class J_12 {
	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		if(sc.hasNextInt()){
			int i=sc.nextInt();
			System.out.println(i);
		}else{
			System.out.println("型別輸入錯誤");
		}
		
		String str=sc.nextLine();
		System.out.println(str);
		
		//建立兩個物件,但是浪費空間
		//錄入都是字串,都用nextLine方法
		int j=sc.nextInt();
		Scanner sc2=new Scanner(System.in);
		String str2=sc2.nextLine();
		System.out.println(j);
		System.out.println(str2);
		
		String str3="abc";		//"abc"可以看成是一個字串物件
		str3="def";				//當把"def"賦值給str3,原來的"abc"就成了垃圾
		System.out.println(str3);//String類重寫了toString方法,返回的是該物件本身
		
		//-------------------------------------
		byte[] arr1={65,66,67};
		String s1=new String(arr1);
		System.out.println(s1);				//ABC
		
		byte[] arr2={65,66,67,68,69};
		String s2=new String(arr2,2,3);		//CDE
		System.out.println(s2);
		
		char[] arr3={'a','b','c','d','e','f'};
		String s3=new String(arr3);	
		System.out.println(s3);				//abcdef
		
		String s4=new String(arr3,1,4);		//bcde
		
		String s5=new String("1111");
		System.out.println(s5);  
		
		//-------------------------------------選定,alt+shift+m生成方法
		String st1="aaaaaaa";
		String st2="aaaaaaa";
		String st3="aaaAaaa";
		String st4="xxxxxxx";
		String st5="xxxaaaa";
		String st6="bbbxxxaaaa";
		String st7="bbb";
		String st8="aaaa";
		String st9="";
		//null是空常量,不能呼叫任何方法,否則會出現空指標異常,null常量可以給任意的引用資料型別賦值
		//""是字串常量,同時也是一個String類的物件,物件就可以呼叫String類中的方法
		
		System.out.println(st1.equals(st2));	//true
		System.out.println(st2.equals(s3));		//false
		
		System.out.println(st2.equalsIgnoreCase(st3));	//true
		//System.out.println(st6.contains(st5));		//jdk的版本太高會在myeclipse出問題
		System.out.println(st6.startsWith(st7));
		System.out.println(st6.endsWith(st8));
		System.out.println(st9.isEmpty());				//true
	}
	public void login(){
		//eg:簡單的模擬使用者登入
		Scanner sc=new Scanner(System.in);
		for(int i=0;i<3;i++){
			System.out.println("請輸入使用者名稱:");
			String str1=sc.nextLine();
			System.out.println("請輸入密碼:");
			String str2=sc.nextLine();
			if("admin".equals(str1)&&"admin".equals(str2)){	//一般使用字串常量呼叫方法,把變數當作引數傳遞,防止空指標異常
				System.out.println("登陸成功");
				break;
			}else{
				System.out.println("登陸失敗,您還有"+(2-i)+"次機會 ");
			}
		}
	}
	//獲取功能的例子
	public void get(){
		String s1="zswan";
		System.out.println(s1.length());
		String s2="qaaqaq";
		char c=s2.charAt(2);
		System.out.println(c);
		int index=s1.indexOf('a');	//如果存在,返回位置,不存在,返回-1
		System.out.println(index);
		
		int index2=s1.indexOf("wa");
		System.out.println(index2);
		
		int index3=s1.indexOf('n',2);
		System.out.println(index3);
		
		int index4=s1.indexOf("an", 1);
		System.out.println(index4);
		
		int index5=s1.lastIndexOf('z');		//從後向前找,第一次出現的字元,但是索引不變
		System.out.println(index5);
		
		String str_1=s1.substring(1);
		System.out.println(str_1);
		
		String str_2=s1.substring(1, 4);	//包含頭不包含尾
		System.out.println(str_2);
	}
	//字串的遍歷
	public void scan(){
		String s="qazwsxedc";
		for(int i=0;i<s.length();i++){
			char c=s.charAt(i);
			System.out.println(c);
			
		}
	}
	
	//統計不同型別的字元個數
	public void num(){
		String s="
[email protected]
"; int i=0,j=0,k=0,q=0; for(int h=0;h<s.length();h++){ char c=s.charAt(h); if(c>='a'&&c<='z'){ i++; }else if(c>='A'&&c<='Z'){ j++; }else if(c>='0'&&c<='9'){ k++; }else q++; } System.out.println("大寫字母個數為:"+j+" 小寫字母個數為:"+i+"數字的個數為"+k+"符號的個數為"+q); } //轉換功能 public void conver(){ String s="aAbABasa"; byte[] arr=s.getBytes(); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); //碼錶對應的數字 } char[] arr2=s.toCharArray(); //把字串轉換為字元陣列 for (int i = 0; i < arr2.length; i++) { System.out.println(arr2[i]); } char[] arr3={'a','b','c','d'}; String s2=String.valueOf(arr3); //直接呼叫靜態方法valueOf,底層是由String類的構造方法組成 System.out.println(s2); String s3=String.valueOf(100); //將100轉換成字串 System.out.println(s3); String s4="aaBB"; String s5="ccDDee"; String s6=s4.toLowerCase(); String s7=s5.toUpperCase(); System.out.println(s6); System.out.println(s7); System.out.println(s4+s5); //用+拼接字串更強大,可以用字串與任意型別相加 System.out.println(s4.concat(s5)); } //其他功能 public void other(){ String s="ksasa"; String s2=s.replace('a', 'b'); System.out.println(s2); //String s3=s.replace("as", "qq"); //jdk的問題 //System.out.println(s3); String s3=" ks asa "; String s4=s3.trim(); System.out.println(s4); String s5="abq"; String s6="abz"; int num=s5.compareTo(s6); //按照碼錶值比較,如果是"a","aaaa",就會按照字串長度 System.out.println(num); String s7="ACa"; String s8="Zaq"; int num2=s7.compareToIgnoreCase(s8); System.out.println(num2); } //字串反轉 public void convert(){ Scanner sc=new Scanner(System.in); String str=sc.nextLine(); char[] arr=str.toCharArray(); String s=""; for (int i=arr.length-1;i>=0;i--) { s=s+arr[i]; } System.out.println(s); } //在父字串中查詢在子字串出現的次數 public void count_str(){ String str="saaqwertyuiopvbaakkaallllsssaa"; String str1="aa"; int count=0; int index=0; while((index=str.indexOf(str1))!=-1){ //index標記找到的索引 count++; str=str.substring(index+str1.length()); } System.out.println(); } }

相關推薦

Java——ScannerString常用方法應用

Scanner的概述和方法             final修飾,不能被繼承             System.in 標準的鍵盤錄入             hasNextInt() 判斷鍵盤錄入是否是int型整數,如果是,則返回true,否則為false       

Scanner String

Scanner類 與 String類1.1 Scanner類1.1.1 Scanner類作用用Scanner類的方法可以完成接收鍵盤錄入的數據1.1.2 Scanner類接受鍵盤錄入的字符串1.1.2.1 案例代碼一: package com.itheima_01; import java.util.Scan

第2章 Scanner String

Java1.1 Scanner類1.1.1 Scanner類作用用Scanner類的方法可以完成接收鍵盤錄入的數據1.1.2 Scanner類接受鍵盤錄入的字符串1.1.2.1 案例代碼一: package com.itheima_01; import java.util.Scanner; /* * Sca

第十二節:ScannerString介紹(講師筆記)

12.01_常見物件(Scanner的概述和方法介紹)(掌握) A:Scanner的概述 B:Scanner的構造方法原理 Scanner(InputStream source)System類下有一個靜態的欄位: public static final InputStre

StringBuilderstring的區別

right .net 隨著 標簽 oba uil att 新的 class string本身是不可改變的,它只能賦值一次,每一次內容發生改變,都會生成一個新的對象,然後原有的對象引用新的對象,而每一次生成新對象都會對系統性能產生影響,這會降低.NET編譯器的工作效率。s

Java面向對象-- String 常用方法及基本使用

for str news http clas substr 實例 div print 首先來學習基本使用Jdk api chm文檔: 點擊 左上角-顯示: 1, char chartAt(int index) 返回指定索引處的char值 這裏的index 是從0

Java第一階段(11)【 Java StringString常用的一些方法 】 11.20

第一階段 API String類 String類中一些常用的方法 API 編寫程式碼時,我們會遇到各種各樣的方法需要呼叫,但是又記不住那麼多,這時候就要查詢API。 API方法錢有個 “已過時”,說明此方法可以用,但不

JAVA——特殊(1)——String(2)——字元字串(方法

(一)字元與字串 字元與字串 字串就是一個字元陣列。 所以在String類裡面支援有字元陣列轉換為字串以及字串變為字元的操作方法。 將字元陣列中的所有內容轉化為字串——返回值為一串字串 public String(char value[ ])

java String的用法 Java String的練習和常用方法

原 Java String類的練習和常用方法 2016年12月01日 11:22:04 憶寒哥哥耶 閱讀數:989

Java String的練習和常用方法

第一個比較常用的string類中的.length( );該方法求字串中的長度/下面我們舉個例子 public class Test { public static void main(String[] args) { String st

Java-String的作用和常用方法總結

String    String類是所有語言最常用的一個類,用於描述字串事物。     String類在Java中被設計成final的,類不能被繼承和修改,至於為什麼要將String設計成final可以

Java字符串String的indexOf()方法

span () min ext 第一次 分享 它的 obj 說明 indexOf()的用途:用於字符串中子串的查找 indexOf()的用法:返回字符中indexof(string)中字串string在父串中首次出現的位置,從0開始,沒有返回-1。 語法stringOb

常用ScannerString、StringBuffer

反轉 字節 string類 size mark 獲取 技術 next proc Scanner類 概述??錄入字符串的方法(默認) hasNextXxx()方法與nextXxx()方法示例??以int類型為例,其他類型用類似的方法註意:這塊得導包import java.

Java 012 ScannerString

知識點梳理 心得體會 小知識點 1.字串字面值也可看做字串物件,可以調方法 2. equals與= =的區別 class Demo { public static void main(String[] args) { String s1 = new String(

JAVA——特殊(1)——String(3)——字串比較(方法

(二)字串比較 (1)比較字串是否相等——區分大小寫——返回值為Boolean型 public boolean equals(Object anObject) //anObject——傳入需要被比較的物件 //此方法區分大小寫 (2)比較字串是否相

Java中子的構造方法

子類與父類的構造方法有兩點原則: 1、子類的構造方法必須呼叫父類的構造方法(原因為什麼,可參考此連結https://blog.csdn.net/y_dzaichirou/article/details/54920715) 2、被子類呼叫的父類構造方法必須存在(這

String、StringBuilderStringBuffered、equals方法==、 常量池

======================================================================= *String型別:(底層是字元陣列+對陣列的操作)   --特點:        (1)是不可變的字串型別,(不可變:物件的內容不

Java集合操作Collections的一些常用方法

public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(34);

Java中子的構造方法的呼叫關係

        在 Java 中,無論是 explicit 還是 implicit 方式,都要求在子類的構造方法中呼叫其父類的構造方法。如果父類無構造方法(其實是一個預設無參的構造方法),那麼子類的構造方法中會自動進行呼叫;如果 父類有自己的構造方法(這時父類不會有預設無參的構造方法),那麼在子類的構造方法

java基礎:父之間變數和方法的呼叫

1)父類建構函式 java中當呼叫某個類的構造方法的時候,系統總會呼叫父類的非靜態初始化塊進行初始化,這個呼叫是隱式的,而且父類的靜態初始化程式碼 塊總是會被執行,接著呼叫父類的一個或者多個構造器執行初始化,這個呼叫也可以通過super進行顯式呼叫。 例如: 父類程式碼如下