91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java基礎之string類的示例分析

發布時間:2021-08-10 13:41:40 來源:億速云 閱讀:147 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“java基礎之string類的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“java基礎之string類的示例分析”這篇文章吧。

    1、String類

    1.1兩種對象實例化方式

    對于String在之前已經學習過了基本使用,就是表示字符串,那么當時使用的形式采取了直接賦值:

    public class StringText{
    	public static void main(String args[]){
    	String str =new String( "Hello");     //構造方法
    	System.out.print(str);
    	}
    }

    對于String而言肯定是一個類,那么程序之中出現的str應該就是這個類的對象,那么就證明以上的賦值操作實際上就表示要為String類的對象進行實例化操作。

    但String畢竟是一個類,那么類之中一定會存在構造方法,String類的構造:

    public class StringText{
    	public static void main(String args[]){
    	String str =new String( "Hello");     //構造方法
    	System.out.print(str);
    	}
    }

    發現現在也可以通過構造方法為String類對象實例化。

    1.2字符串比較

    如果現在有兩個int型變量,如果想要知道是否相等,使用“==”進行驗證。

    public class StringText{
    	public static void main(String args[]){
    	int x = 10;
    	int y = 10;
    	System.out.print(x==y);
    	}
    }

    換成String

    public class StringText{
    	public static void main(String args[]){
    		String str1 = "Hello";
    		String str2 = new String("Hello");
    		String str3 = str2;     //引用傳遞
    		System.out.print(str1== str2);          //false
    		System.out.print(str1== str3);          //false
    		System.out.print(str2== str3);          //ture
    	}       
    }

    java基礎之string類的示例分析

    現在使用了“==”的確是完成了相等的判斷,但是最終判斷的是兩個對象(現在的對象是字符串)判斷是否相等,屬于數值判斷------判斷的是兩個對象的內存地址數值,并沒有判斷內容,而想要完成字符串內容的判斷,則就必須使用到String類的操作方法:public Boolean equals(String str)(將方法暫時變了)

    public class StringText{
    	public static void main(String args[]){
    		String str1 = "Hello";
    		String str2 = new String("Hello");
    		String str3 = str2;     //引用傳遞
    		System.out.print(str1.equals(str2));          //ture
    		System.out.print(str2.equals(str3));          //ture
    		System.out.print(str2.equals(str3));          //ture
    	}       
    }

    1.3字符串常量是String的匿名對象

    如果在程序之中定義了字符串(使用“””),那么這個就表示一個String對象,因為在各個語言之中沒有關于字符串數據類型的定義,而Java將其簡單的處理了,所以感覺上存在了字符串數據類型。

    **范例:**驗證字符串是對象的概念

    public class NiMing{
    	public static void main(String args[]){
    		String str = "Hello";
    		System.out.print("Hello".equals(str));     //通過字符串調用方法
    	}       
    }

    匿名對象可以調用類之中的方法與屬性,以上的字符串可以調用了equals()方法,那么它一定是一個對象。

    **小技巧:**關于字符串與字符串常量的判斷

    例如:在實際工作之中會有這樣一種操作,要求用戶輸入一個內容,之后判斷此內容是否與指定內容相同。

    public class NiMing{
    	public static void main(String args[]){
    		String str = "Hello";
            if(str.equals("Hello")){
    		    System.out.print("條件滿足");
    		}   
    	}       
    }

    但,既然數據是用戶自己輸入,那么就有可能沒有輸入內容。

    public class TestDemo1{
    	public static void main(String args[]){
    		String str = null;
            if(str.equals("Hello")){
    		    System.out.print("條件滿足");
    		}   
    	}       
    }
    
    //報錯
        Exception in thread "main" java.lang.NullPointerException
            at NiMing.main(TestDemo1.java:4)
    //現在將代碼反過來操作:
            public class TestDemo1{
    	public static void main(String args[]){
    		String str = null;
            if("Hello".equals(str)){
    		    System.out.print("條件滿足");
    		}   
    	}       
    }

    因為字符串常量是匿名對象,匿名對象不可能為null。

    1.4String兩種實例化方式區別

    1、分析直接賦值方式
    String str = "Hello";     //定義字符串

    java基礎之string類的示例分析

    發現現在只開辟額一塊堆內存空間和一塊棧內存空間。

    2、構造方法賦值
    String  str = new String("Hello");

    java基礎之string類的示例分析

    使用構造方法賦值的方式開辟的字符串對象,實際上會開辟兩塊空間,其中有一塊空間就愛那個成為垃圾。

    public class TestDemo2{
    public static void main(String args[]){
    		String str1 = new String("Hello");
    		String str2 = "Hello";   //入池
    		String str3 = "Hello";  //使用池中對象
    		System.out.print(str1==str2);          //false
    		System.out.print(str2==str3);          // ture 
    		System.out.print(str1==str3);          // false
    	}       
    }

    通過上面的程序可以發現,使用構造方法實例化String對象,不會入池,只能自己使用。可是在String類之中為了方便操作提供了一種稱為手工入池的方法:public String intern()。

    public class TestDemo2{
    public static void main(String args[]){
    		String str1 = new String("Hello").intern();    //手工入池
    		String str2 = "Hello";   //入池
    		String str3 = "Hello";  //使用池中對象
    	    System.out.print(str1==str2);          //ture		 	 	    			System.out.print(str2==str3);          //ture
    		System.out.print(str1==str3);          //ture
    	}       
    }

    1.5字符串常量不可改變

    字符串類的操作特點決定:字符串不可能去修改里面的內容。

    public class TestDemo3{
    	public static void main(String args[]){
    		String str = "Hello";
    		str += "World";
    		str += "!!!";
    		System.out.print(str);
    	}
    }

    java基礎之string類的示例分析

    通過以上的代碼可以發現,字符串內容的更改,實際上改變的是字符串對象的引用過程,那么一下的代碼應該盡量避免:

    public class TestDemo3{
    	public static void main(String args[]){
    		String str = "Hello";
    		for(int x=0;x<1000;x++){
    			str += x;
    		}
    		System.out.print(str);
    	}       
    }
    • 字符串賦值只用直接賦值模式進行完成

    • 字符串的比較采用equals()方法進行實現字

    • 符串沒有特殊的情況不要改變太多

    1.6開發中String必用

    任何一個類的文檔由如下幾個部分組成

    • 類的相關定義,包括這個類的名字,有哪些父類,有哪些接口。

    • 類的相關簡介。包括基本使用

    • 成員摘要(field):屬性就是一種成員,會列出所有成員的信息項

    • 構造方法說明(Constructor),列出所有構造方法的信息

    • 方法信息(Method),所有類中定義好的可以使用的方法

    • 成員、構造、方法的詳細信息

    1.7字符串和字符數組

    字符串就是一個字符數組,所有在String類中有字符串轉變為字符數組,字符數組轉換為字符串的方法。

    方法名稱類型描述
    public String(char[] value)構造將字符數組中的所有內容變為字符串
    public String(char[] value, int offset, int count)構造將字符數組中的所有內容變為字符串 offset-開始 count-個數
    public char charAt(int index)普通返回char指定字符的索引值
    public char[] toCharArray()普通將字符串轉化為字符數組
    charAt方法
    public class TestDemo4{
    	public static void main(String args[]){
    		String str = "Hello";
    		System.out.println(str.charAt(0));
    		//如果現在超過了字符串的長度,則會產生異常StringIndexOutOfBoundsException
    		System.out.println(str.charAt(10));
    	}
    }

    字符串和字符數組的轉化是重點

    //字符串轉化為字符數組
    public class TestDemo4{
    	public static void main(String args[]){
    		String str = "helloworld";
    		char data [] = str.toCharArray();
    		for(int i = 0; i < data.length; i++){
    		data[i] -= 32;	//轉大寫字母簡化模式更簡單
    			System.out.print(data[i] + "、");
    		}
    		
    	}
    }
    //字符數組轉化為字符串
    public class TestDemo4{
    	public static void main(String args[]){
    		String str = "helloworld";
    		char data [] = str.toCharArray();
    		for(int i = 0; i < data.length; i++){
    		data[i] -= 32;	//轉大寫字母簡化模式更簡單
    			System.out.print(data[i] + "、");
    		}
    		System.out.println();
    		System.out.println(new String(data));//字符串數組全部轉化為字符數組
    		System.out.println(new String(data,1,4));//字符串數組部分轉化為字符數組
    	}
    }

    java基礎之string類的示例分析

    判斷字符串是否由數字組成

    public class TestDemo5{
    	public static void main(String args[]){
    		String str1 = "helloworld";
    		String str = "1234567890";
    		Judgenum(str);
    		Judgenum(str1);
    	}
    	public static void Judgenum(String str){
    		char data [] = str.toCharArray();
    		boolean judge = true;
    		for(int i = 0; i < data.length; i++){
    			if(data[i]>= '0' && data[i]<= '9'){
    				judge = false;
    			}
    		}
    		if(judge){
    			System.out.println(str+"是由字母組成");
    		}else
    			System.out.println(str+"是由數字組成");
    	}
    }

    java基礎之string類的示例分析

    1.8字節和字符串

    方法名稱類型描述
    public String(byte[] bytes)構造將部分字節數組變為字符串
    public String(byte[] bytes, int offset,int length)構造將部分字節數組變為字符串 bytes——要解碼為字符的字節 offset——要解碼的第一個字節的索引 length——要解碼的字節數
    public byte[] getBytes()普通將字符串變為字節數組
    public byte[] getBytes(String charsetName) throws UnsupportedEncodingException普通編碼轉換編碼
    //將字符串通過字節流轉化為大寫
    public class TestDemo6{
    	public static void main(String args[]){
    		String str = "helloworld";
    		byte data [] = str.getBytes();//字符串轉換為字節數組
    		for(int i = 0; i < data.length ; i++){
    			System.out.print(data[i]+"、");
    			data[i] -= 32;
    		}
    		System.out.println(new String(data));//字節數組轉化為字符串
    	}
    }

    java基礎之string類的示例分析

    一般情況下,在程序之中如果想要操作字節數組只有兩種情況:

    **1、**需要進行編碼的轉化;

    2、 數據要進行傳輸的時候。

    **3、**二進制文件適合字節處理

    1.9字符串比較

    方法名稱類型描述
    public boolean equals(String anObject)普通區分大小寫比較
    public boolean equalsIgnoreCase(String anotherString)普通不區分大小寫比較
    public int compareTo(String anotherString)普通比較兩個字符串的大小關系

    如果現在要比較兩個字符串的大小關系,那么就必須使用comepareTo()方法完成,而這個方法返回int型數據,而這個int型數據有三種結果:大于(返回結果大于0)、小于(返回結果小于0)、等于(返回結果為0).

    public class CompareTo{
    	public static void main(String args[]){
    	String str1 = "HELLO";
    	String str2= "hello";
    	System.out.println(str1.compareTo(str2));
    	
    	}
    }

    1.10字符串查找

    方法名稱類型描述
    public boolean contains(String s)普通判斷一個子字符串是否村存在
    public int indexOf(String str)普通返回字符串中第一次出現字符串的索引
    public int indexOf(String str, int fromIndex)普通從指定地方開始查找子字符串的位置
    public int lastIndexOf(String str)普通從后向前查找子字符串的位置
    public int lastIndexOf(String str, int fromIndex)普通從指定位置由后向前查找
    public boolean startsWith(String prefix)普通從頭判斷是否以某字符串開頭
    public boolean startsWith(String prefix,int toffset)普通從指定位置判斷是否以字符串開頭
    public boolean endsWith(String suffix)普通判斷以某字符串結尾
    public class TestDemo7{
    	public static void main(String args[]){
    		String str = "helloworld";
    		System.out.println(str.contains("world"));		//true
    		//使用indexOf()進行查找
    		System.out.println(str.indexOf("world"));
    		System.out.println(str.indexOf("java"));
    		//JDK1,5之前這樣使用
    		if(str.indexOf() != -1){
    			System.out.println("可以查找到指定的內容");
    		}
    	}
    }
    • 基本上所有的查找現在都是通過contains()方法完成。

    • 需要注意的是,如果內容重復indexOf()它只能返回查找的第一個位置。

    • 在進行查找的時候往往會判斷開頭或結尾。

    public class TestDemo7{
    	public static void main(String args[]){
    		String str = "**@@helloworld##";
    		System.out.println(str.startsWith("**"));	//true
    		System.out.println(str.startsWith("@@",2));	//true
    		System.out.println(str.endsWith("##"));	//true
    	}
    }

    1.11字符串的替換

    方法名稱類型描述
    public String replaceAll(String regex,String replacement)普通替換所有的內容
    public String replaceFirst(String regex,String replacement)普通替換首內容
    public class TestDemo7{
    	public static void main(String args[]){
    		String str = "**@@helloworld##";		
    		System.out.println(str.replaceAll("l","_"));	//**@@he__owor_d##
    	}
    }

    1.12字符串的拆分

    方法名稱類型描述
    public String[] split(String regex)普通將字符串全部拆分
    public String[] split(String regex,int limit)普通將字符串部分拆分






    public class TestDemo8{
    	public static void main(String args[]){
    		String str = "hello world hello zsr hello csdn";
    		String result [] = str.split(" ");	//按照空格進行拆分
    		//hello、world、hello、zsr、hello、csdn、
    		for(int i = 0; i < result.length ; i++){
    			System.out.print(result[i]+"、");	
    		}
    		System.out.println();
    		//部分拆分
    		String result1 [] = str.split(" ",3);	//按照空格進行拆分
    		//第二個參數 從第幾個位置開始不進行拆分操作
    		//hello、world、hello zsr hello csdn、
    		for(int i = 0; i < result1.length ; i++){
    			System.out.print(result1[i]+"、");	
    		}
    	}
    }
    //拆分ip地址
    public class TestDemo9{
    //吳國發現內容無法拆分,就需要用到“\\”進行轉義
    	public static void main(String args[]){
    	//120
    	//11
    	//219
    	//223:57114
    		String str = "120.11.219.223:57114";
    		String result [] = str.split("\\.");
    		for(int i = 0 ; i < result.length ; i++){
    			System.out.println(result[i]);
    		}
    	}
    }

    1.13字符串的截取

    方法名稱類型描述
    public String substring(int beginIndex)普通從指定位置截取到結尾
    public String substring(int beginIndex,int endIndex)普通截取部分內容
    public class TestDemo10{
    	public static void main(String args[]){
    		String str = "helloworld";
    		//world
    		System.out.println(str.substring(5));
    		//hello
    		System.out.println(str.substring(0,5));	
    	}
    }

    1.14其他操作方法

    方法名稱類型描述
    Public String trim()普通去掉左右空格,保留中間空格
    public String toUpperCase()普通將全部字符串轉大寫
    public String toLowerCase()普通將全部字符串轉小寫
    public String intern()普通字符串入對象池
    public String concat()普通字符串連接

    思考題:

    1.現在給出了如下一個字符串格式:“姓名:成績|姓名:成績|姓名:成績”,例如:給定的字符串是:“Tom:90|Jerry:80|tony:89”,要求可以對以上數據進行處理,將數據按照如下的形式顯示:姓名:Tom,成績:90;

    public class Exam1{
    	public static void main(String args[]){
    		String str = "Tom:90|Jerry:80|tony:89";
    		String data [] = str.split("\\|");
    		for(int i = 0 ; i < data.length ; i++){
    			String result [] = data[i].split(":");
    			System.out.print("姓名 = " + result[0] + ",");
    			System.out.println("年齡 = " + result[1]);
    		}
    		
    		/*姓名 = Tom,年齡 = 90
    		  姓名 = Jerry,年齡 = 80
    		  姓名 = tony,年齡 = 89*/
    	}
    }

    2.給定一個email地址,要求驗證其是否正確,提示:可以簡單的驗證一下,重點驗證“@”和“.”。標準如下:

    1.email長度不短于5

    2.@和.不能做開頭或結尾

    3.@和.順序要有定義

    public class Exam2{
    	public static void main(String args[]){
    		String email = "1016942589.@qqcom";
    		char date[] = email.toCharArray();
    		if (date.length>5&&email.startsWith("@")==false 
    		&& email.startsWith(".")==false && email.endsWith("@")==false
    		&&email.endsWith(".")==false && email.indexOf(".") >email.indexOf("@"))
    		{System.out.println("正確");
    		}else{System.out.println("錯誤");}
    	}
    }

    以上是“java基礎之string類的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    太保市| 鲁山县| 元朗区| 郧西县| 鹤峰县| 时尚| 梅州市| 鱼台县| 德阳市| 崇明县| 临夏县| 大同县| 许昌市| 堆龙德庆县| 海宁市| 平乐县| 宜州市| 西吉县| 达拉特旗| 宜黄县| 阳西县| 东方市| 泸州市| 色达县| 习水县| 郴州市| 丹阳市| 迁安市| 泽普县| 巴南区| 武夷山市| 兴国县| 广西| 三原县| 石台县| 定远县| 安西县| 彭泽县| 兴仁县| 平罗县| 登封市|