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——Scanner類與String類的常用方法應用
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
第十二節:Scanner類與String類介紹(講師筆記)
12.01_常見物件(Scanner的概述和方法介紹)(掌握) A:Scanner的概述 B:Scanner的構造方法原理 Scanner(InputStream source)System類下有一個靜態的欄位: public static final InputStre
StringBuilder類與string類的區別
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 String類、String類中常用的一些方法 】 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
常用類(Scanner類、String類、StringBuffer類)
反轉 字節 string類 size mark 獲取 技術 next proc Scanner類 概述??錄入字符串的方法(默認) hasNextXxx()方法與nextXxx()方法示例??以int類型為例,其他類型用類似的方法註意:這塊得導包import java.
Java 012 Scanner類、String類
知識點梳理 心得體會 小知識點 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類、StringBuilder類與StringBuffered類、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進行顯式呼叫。 例如: 父類程式碼如下