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";
	}

}

字符串对象构造方法创建和直接赋值的区别
Java-String和StringBuilder的用法(一)_第1张图片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;
		
	}


}

你可能感兴趣的:(java,笔记,java,String,StringBuilder)