Java-String和StringBuilder的用法(一)

API概述

API:應用程序編程接口(幫助文檔)
如何使用API:
1-打開幫助文檔
2-點擊顯示按鈕,找到索引,看到輸入框
3-你要學習什麼內容,就輸入什麼內容
4-看包
java.lang包下的類使用時是不需要導包
看類的描述
5-看構造方法
6-看成員方法
看返回值類型
看方法名
看形式參數

利用Scanner來接受字符串

package com.api;
import java.util.Scanner;

public class ScannerDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//利用scanner接受一個字符串
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入字符串:");
		//Public String nextLine():獲取鍵盤錄如的字符串數據
		String s = sc.nextLine();
		System.out.println(s);

	}

}

String類的相關操作和方法

String是字符串類,有多個字符組成的數據
構造方法:

  • String(String original)//把字符串數據封裝成字符串對象
  • String(char[] value)//把字符串數組的數據封裝成對象
  • String(char[] value,int offset,int count)

字符串是一種比較特殊的引用類型,直接輸出對象中的數據
通過構造方法創建的字符串對象和直接賦值創建的字符串對象有什麼區別?

  • 對象比較的是地址
  • ==:可以比較基本數據類型(值),可以比較引用數據類型(地址)
  • 通過構造方法創建字符串對象是在堆內存,直接賦值創建的字符串對象是在方法區的常量池。
package com.String;

public class StringDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//String是java.lang下的類不需要導入
		//方式1
		String s1 = new String("Hello");
		System.out.println(s1);

		//方式2
		char[] chs= {'h','e','l','l','o'};
		String s2 = new String(chs);
		System.out.println(s2);
		
		//方式3
		char[] chs1= new char[5];
		String s3 = new String(chs,0,4);
		System.out.println(s3);
		;
		//方式4
		String s4 = "hello";
	}

}

字符串對象構造方法創建和直接賦值的區別
在這裏插入圖片描述String的判斷功能

  • boolean equals(Object obj):比較字符串內容是否相同
  • boolean equalsIgnoreCase(String str):不區分大小寫比較
  • boolean startsWith(String str):是否以字符串開頭
  • boolean endsWith(String str):是否以字符串結束
package com.it;
/*
 * String類的判斷功能
 */
public class StringDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//創建對象
		String s1 = "hello";
		String s2 = "hello";
		String s3 = "Hello";
		
		//boolean equals(Object obj):比較字符串內容是否相同
		System.out.println(s1.equals(s2));
		System.out.println(s1.equals(s3));
		
		//boolean equalsIgnoreCase(String str):不區分大小寫比較
		System.out.println(s1.equalsIgnoreCase(s3));
		
		//boolean startsWith(String str):是否以字符串開頭
		System.out.println(s1.startsWith("he"));
		
		//boolean endsWith(String str):是否以字符串結束
		System.out.println(s1.endsWith("lo"));
	}

}

使用字符串的判斷功能模擬用戶登錄功能

package com.it;
import java.util.Scanner;
/*
 * 模擬用戶登錄
 * 1-定義兩個字符串對象
 * 2-用戶錄入字符串
 * 3-比較
 * 4-注意比較次數
 */
public class StringTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//設置密碼和用戶名
		String name = "hrust";
		String code = "12345";
		
		Scanner sc = new Scanner(System.in);
		//給三次機會
		for(int x=0;x<3;x++) {
			//用戶登錄界面
			System.out.println("歡迎用戶登錄,請輸入用戶名和密碼:");
			System.out.println("請輸入用戶名:");
			String s1 = sc.nextLine();
			System.out.println("請輸入密碼:");
			String s2 = sc.nextLine();
			
			if(s1.equals(name)&&s2.equals(code)) {
				System.out.println("登錄成功");
				break;
			}else {
				System.out.println("登錄失敗,你還有"+(2-x)+"次機會");
			}
			
		}
		
		
		

	}

}

String類的獲取功能

  • int length():獲取長度
  • char charAt(int index):返回指定索引的字符
  • int indexOf(String str):字符串的索引
  • String substring(int start):從某個位置開始的子字符串
  • String substring(int start,int end):以某個位置開始,以某個位置結束的子字符串/不包括end
package com.it01;
/*
 * String類的獲取功能
 */
public class StringDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		String s = "hello world";
		//int length()
		System.out.println(s.length());
		
		//char charAt(int index):返回指定索引的字符
		System.out.println(s.charAt(5));
		
		//int indexOf(String str):字符串的索引
		System.out.println(s.indexOf("world"));
		
		//String substring(int start):從某個位置開始的子字符串
		System.out.println(s.substring(4));
		

	}

}

對字符串進行遍歷

package com.it01;
/*
 * 遍歷字符串
 */
public class StringTest {

	public static void main(String[] args) {
		// TODO 
		String s = "abcdefg";
		for (int x=0;x<s.length();x++) {
			System.out.println(s.charAt(x));
		}
	}

}

統計字符串中大小寫及其數字的個數

package com.it01;
import java.util.Scanner;
/*
 * 字符串統計-大小寫數字
 */
public class StringTest1 {

	public static void main(String[] args) {
		// TODO 
		//輸入字符串
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入字符串");
		String s = sc.nextLine();
		
		//初始化
		int upper = 0;
		int lower = 0;
		int num = 0;
		
		//遍歷統計數據
		for(int x=0;x<s.length();x++) {
			char ch = s.charAt(x);
			if (ch>='A'&&ch<='Z') {
				upper++;
			}else if (ch>='a'&&ch<='z') {
				lower++;
			}else if (ch>='0'&&ch<='9') {
				num++;
			}else {
				System.out.println("非法字符");
			}
		}
		System.out.println("大寫字母個數爲:"+upper);
		System.out.println("小寫字母個數爲:"+lower);
		System.out.println("數字個數爲:"+num);
		

	}

}

String類的轉換功能

  • char[] toCharArray()//把字符串轉換爲字符數字
  • String toLowerCase()
  • String toUpperCase()
package com.it01;
/*
 * String 轉換功能
 */
public class StringTest2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		String s ="hEllo";
		
		//char[] toCharArray()
		char[] ch = s.toCharArray();
		
		//String toLowerCase()
		System.out.println(s.toLowerCase());
		
		//String toUpperCase()
		System.out.println(s.toUpperCase());
		

	}

}

錄入字符串將首字母大寫,其他字母改成小寫

package com.it01;
import java.util.Scanner;
/*
 * 錄入字符串首字母大寫其他小寫
 */
public class StringTest3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//錄入字符串
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入字符串:");
		String s = sc.nextLine();
		
		//截取首字母
		String s1 = s.substring(0,1);
				
		//其他字母
		String s2 = s.substring(1);
		
		//處理
		String s3 = s1.toUpperCase()+s2.toLowerCase();
		System.out.println("處理後的數據爲:"+s3);
	}

}

String其他功能

  • 去除兩端空格-String trim()
  • 按照指定符號分割字符-String[] split(String str)
package com.it01;
/*
 * String其他功能
 * 		1-去除兩端空格
 * 			String trim()
 * 		2-按照指定符號分割字符
 * 			String[] split(String str)
 */
public class StringTest4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//創建對象
		String s1 = " helloworld";
		String s2 = " helloworld ";
		String s3 = "hello world ";
		
		//String trim()
		System.out.println(s1.trim());
		System.out.println(s2.trim());
		System.out.println(s3.trim());
		
		//按照指定符號分割字符String[] split(String str)
		String s4 = "aa,bb,cc";
		String[] str = s4.split(",");
		for (int x=0;x<str.length;x++) {
			System.out.println(str[x]);
		}

	}

}

將數組元素按照格式進行拼接

package com.it01;
/*
 * 把數組中的數組按照指定格式拼接成一個字符串
 */
public class StringTest5 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr = {1,2,3,4,5};
		String s = getString(arr);
		System.out.println(s);
		

	}
	public  static String getString(int[] arr) {
		String s="";
		s+="[";
		for(int x=0;x<arr.length;x++) {
			if (x==arr.length-1) {
				s+=arr[x];
			}else {
				s+=arr[x];
				s+=", ";
			}
		}
		s+="]";
		
		return s;
	}

}

字符串反轉

package com.it01;
import java.util.Scanner;
/*
 * 字符串反轉
 */
public class StringTest6 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//鍵盤錄入字符串
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入字符串:");
		String s = sc.nextLine();
		
		String sss = reverse(s);
		System.out.println(sss);
		

	}
	public static String reverse(String s) {
		//方法一:倒着遍歷
		String ss="";
		for (int x=s.length()-1;x>=0;x--){
			ss+=s.charAt(x);
		}
		return ss;
		
		
	}
	public static String reverse2(String s) {
		
		//方法二:先轉換成數組
		
		char[] chs = s.toCharArray();
		for (int start=0,end=chs.length-1;start<=end;start--,end++) {
			char temp =chs[start];
			chs[start]=chs[end];
			chs[end]=temp;
		}
		String ss = new String(chs);
		return ss;
		
	}


}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章