文章目录
String
String构造方法
package heima;
public class P119 {
public static void main(String[] args) {
String s1 = new String();
System.out.println("s1:"+s1);
char[] chs = {'a','b','c'};
String s2 = new String(chs);
System.out.println("s2:"+s2);
byte[] bys = {97,98,99};
String s3 = new String(bys);
System.out.println("s3:"+s3);
String s4 = "abc";
System.out.println("s4:"+s4);
}
}
String对象的特点
观察下列例子,体会两种String对象的特点不同
String的比较
String是对象,==比较的是地址值
比较数据值,使用方法:equals()
package heima;
public class P120 {
public static void main(String[] args) {
char[] chs = {'a','b','c'};
String s1 = new String(chs);
String s2 = new String(chs);
String s3 = "abc";
String s4 = "abc";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
案例–用户登录
package heima.P121;
import java.util.Scanner;
public class StringTest01 {
public static void main(String[] args) {
String username = "ludan";
String password = "123456";
for(int i = 0;i<3;i++){
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名");
String name = sc.nextLine();
System.out.println("请输入密码");
String pwd = sc.nextLine();
if(name.equals(username) && pwd.equals(password)){
System.out.println("登录成功");
break;
}else{
System.out.println("登录失败,你还有"+(2-i)+"次机会");
}
}
}
}
nextLine忘了会看Scanner文章
案例–遍历字符串
charAt用法
package heima.P122;
import java.util.Scanner;
public class bl {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串: ");
String line = sc.nextLine();
System.out.println(line.charAt(0));
System.out.println(line.charAt(1));
System.out.println(line.charAt(2));
}
}
length用法
package heima.P122;
import java.util.Scanner;
public class bl {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串: ");
String line = sc.nextLine();
// System.out.println(line.charAt(0));
// System.out.println(line.charAt(1));
// System.out.println(line.charAt(2));
for(int i = 0;i<line.length();i++){
System.out.println(line.charAt(i));
}
}
}
案例–统计字符次数
package heima;
import java.util.Scanner;
public class P123 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
String line = sc.nextLine();
int bigCount = 0;
int smallCount = 0;
int numberCount = 0;
for(int i = 0;i<line.length();i++){
char ch = line.charAt(i);
if(ch >= 'A' && ch <='Z'){
bigCount++;
}else if(ch>='a' && ch<='z'){
smallCount++;
}else if(ch>='0' && ch<='0'){
numberCount++;
}
}
System.out.println("大写字母:"+bigCount+"个");
System.out.println("小写字母:"+smallCount+"个");
System.out.println("数字:"+numberCount+"个");
}
}
案例–拼接字符串
package heima;
public class P124 {
public static void main(String[] args) {
int[] arr = {1,2,3};
String s = arrayToString(arr);
System.out.println("s:"+s);
}
public static String arrayToString(int[] arr){
String s = "";
s+="[";
for(int i = 0;i<arr.length;i++){
if(i == arr.length-1){
s+=arr[i];
}else{
s+=arr[i];
s+=",";
}
}
s += ']';
return s;
}
}
输出:
案例–字符串反转
package heima;
import java.util.Scanner;
public class P125 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//abc
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
String s = reverse(line);
System.out.println("s:"+s);
}
public static String reverse(String s){
String ss = "";
for(int i = s.length()-1;i>=0;i--){
ss += s.charAt(i);
}
return ss;
}
}
通过帮助文档查看String中的方法
StringBuilder
概述
StringBuilder构造方法
package heima;
public class P126 {
public static void main(String[] args) {
//创建一个空白可变字符串对象
StringBuilder sb = new StringBuilder();
System.out.println("sb:"+sb);
System.out.println("sb.length():"+sb.length());
//根据字符串内容创建可变字符串对象
StringBuilder sb2 = new StringBuilder("hello");
System.out.println("sb2:"+sb2);
System.out.println("sb2.length():"+sb2.length());
}
}1
StringBuilder的添加和反转方法
package heima;
public class P129 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
//append 添加数据,并返回对象本身
StringBuilder sb2 = sb.append("hello");
System.out.println("sb:"+sb);
System.out.println("sb2:"+sb2);
System.out.println(sb == sb2);
//链式编程
sb.append("hello").append("world").append("java").append(100);
System.out.println("sb:"+sb);
//reverse() 返回相反的字符序列
sb.reverse();
System.out.println("sb:"+sb);
}
}
StringBuilder和String相互转换
package heima;
public class P130 {
public static void main(String[] args) {
//StringBuilder转换为String
StringBuilder sb = new StringBuilder();
sb.append("hello");
String s = sb.toString();
System.out.println(s);
//String转换为StringBuilder
String s1 = "hello1";
StringBuilder sb1 = new StringBuilder(s1);
System.out.println(sb1);
}
}
案例升级–拼接字符串
使用StringBuilder、String、append
package heima;
public class P131 {
public static void main(String[] args) {
int[] arr = {1,2,3};
String s = arrayToString(arr);
System.out.println("s:"+s);
}
public static String arrayToString(int[] arr){
StringBuilder sb = new StringBuilder();
sb.append("[");
for(int i = 0;i<arr.length;i++){
if(i == arr.length-1){//到数组结尾时特殊处理
sb.append(arr[i]);
}else{
sb.append(arr[i]).append(",");
}
}
sb.append("]");
String s = sb.toString();
return s;
}
}
append函数
append():类似于尾插,就是给元素后面追加一个字符串
案例升级–反转字符串
package heima;
import java.util.Scanner;
public class P132 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
String s = myReverse(line);
System.out.println("s:"+s);
}
public static String myReverse(String s){
return new StringBuilder(s).reverse().toString();
}
}