国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

String(字符串)

這篇具有很好參考價值的文章主要介紹了String(字符串)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、String概述

  • java.lang.String類代表字符串,Java程序中的所有字符串文字(例如“abc”)都為此類的對象。

1.1、String的注意點

  • 字符串的內容是不會發(fā)生改變的,它的對象在創(chuàng)建后不能被更改。

1.2、總結

  1. String是Java定義好的一個類。定義在java.lang包中,所以使用的時候不需要導包。
  2. Java程序中的所有字符串文字都被實為此類的對象。
  3. 字符串不可變,它們的值在創(chuàng)建后不能被更改。

2、String構造方法代碼實現(xiàn)和內存分析

2.1、創(chuàng)建String對象的兩種方式

  1. 直接賦值????????????????
    String? ? ? ? ? name? ? ? ? =? ? ? ? " 字符串 ";
    package stringdemo;
    
    public class StringDemo1 {
        public static void main(String[] args) {
            String s1 = "abc";
            System.out.println(s1);
        }
    }
    D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=21864:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringDemo1
    abc
    
    Process finished with exit code 0
    
  2. new
構造方法 說明
public? ? ? ? ?String() 創(chuàng)建空白字符串,不含任何內容
public? ? ? ? ?String(String original) 根據傳入的字符串,創(chuàng)建字符串對象
public? ? ? ? ?String(char[ ]? ? ? ? chs) 根據字符數組,創(chuàng)建字符串對象
public? ? ? ? ?String(byte[? ]? ? ? ?chs) 根據字節(jié)數組,創(chuàng)建字符串對象
? ?????????????????????????????????????????????????????????????????????????????????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
package stringdemo;

public class StringDemo1 {
    public static void main(String[] args) {
        String s2 = new String();
        System.out.println("@" + s2 + "!");//@!

        String s3 = new String("abc");
        System.out.println(s3);//abc

//      應用場景:修改字符串的內容。abcd -->  Qbcd
        char[] chs = {'a', 'b', 'c', 'd'};
        String s4 = new String(chs);
        System.out.println(s4);//abcd

//      應用場景:以后在網絡當中傳輸的數據其實都是字節(jié)信息
//      我們一般要把字節(jié)信息進行轉換,轉成字符串,此時就要用到這個構造了。
        byte[] bytes = {97, 98, 99, 100};
        String s5 = new String(bytes);
        System.out.println(s5);//abcd
    }
}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=2016:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringDemo1
@!
abc
abcd
abcd

Process finished with exit code 0

2.2、String內存分析,內存模型

2.2.1、直接賦值內存分析

  • 注意:StringTable(串池)在JDK7版本開始從方法區(qū)挪到了堆內存

    String(字符串),# 常用API,開發(fā)語言,java,String

  • ?當使用雙引號直接賦值時,系統(tǒng)會檢查字符串在串池中是否存在。不存在:創(chuàng)建新的,存在:復用

2.2.2、手動new內存圖解析

String(字符串),# 常用API,開發(fā)語言,java,String

3、字符串的比較

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?==號比的到底是什么?
基本數據類型 引用數據類型
基本數據類型比較的是數據值 引用數據類型比較的是地址值
String(字符串),# 常用API,開發(fā)語言,java,String String(字符串),# 常用API,開發(fā)語言,java,String
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?字符串的比較
  • boolean? equals方法(要比較的字符串)
  • 完全一樣結果才是true,否則為false
  • boolean equalsIgnoreCase(要比較的字符串)
  • 忽略大小寫的比較
?
package stringdemo;

import java.util.Scanner;

public class StringDemo1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入一個字符串");
        String str1 = sc.next();//是new出來的
        String str2 = "abc";

        System.out.println(str1 == str2);//false
    }
}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=4197:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringDemo1
請輸入一個字符串
abc
false

Process finished with exit code 0
  • 查看next();方法的源碼發(fā)現(xiàn)鍵盤輸入的字符串是new出來的。
  • String(字符串),# 常用API,開發(fā)語言,java,String

4、練習-用戶登錄

  • 已知正確的用戶名和密碼,請用程序實現(xiàn)模擬用戶登錄??偣步o三次機會,登錄之后,給出相應的提示。
  • package stringdemo;
    
    import java.util.Scanner;
    
    public class StringDemo1 {
        public static void main(String[] args) {
            String rightUsername = "zhangsan";
            String rightPassword = "123456";
    
            Scanner sc = new Scanner(System.in);
            for (int i = 0; i < 3; i++) {
                System.out.println("請輸入用戶名");
                String username = sc.next();
                System.out.println("請輸入密碼");
                String password = sc.next();
    
                if (username.equals(rightUsername) && password.equals(rightPassword)) {
                    System.out.println("用戶登錄成功");
                    break;
                } else {
                    if (i == 2) {
                        System.out.println("賬號" + username + "被鎖定,請聯(lián)系管理員客服:");
                    }
                    System.out.println("用戶登錄失敗,用戶名或密碼有誤,您還剩下" + (2 - i) + "次機會");
                }
            }
    
    
        }
    
    }
    D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=5568:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringDemo1
    請輸入用戶名
    z
    請輸入密碼
    z
    用戶登錄失敗,用戶名或密碼有誤,您還剩下2次機會
    請輸入用戶名
    z
    請輸入密碼
    z
    用戶登錄失敗,用戶名或密碼有誤,您還剩下1次機會
    請輸入用戶名
    z
    請輸入密碼
    z
    賬號z被鎖定,請聯(lián)系管理員客服:
    用戶登錄失敗,用戶名或密碼有誤,您還剩下0次機會
    z
    Process finished with exit code 0
    

5、練習-遍歷字符串和統(tǒng)計字符個數

5.1、遍歷字符串

  • 需求:鍵盤錄入一個字符串,使用程序實現(xiàn)在控制臺遍歷該字符串
  • public char chatAt(int index):
  • 根據索引返回字符
  • public int length():
  • 返回此字符串的長度
  • 數組的長度:
  • 數組.length
  • 字符串的長度:
  • 字符串對象.length()
package stringdemo;

import java.util.Scanner;

public class StringTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入字符串");
        String next = sc.next();
        for (int i = 0; i < next.length(); i++) {
            char c = next.charAt(i);
            System.out.println(c);
        }
    }
}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=31884:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringTest
請輸入字符串
abcd
a
b
c
d

Process finished with exit code 0

5.2、統(tǒng)計字符次數

  • 鍵盤錄入一個字符串,統(tǒng)計該字符串中大寫字母字符,小寫字符字符,數字字符出現(xiàn)的次數(不考慮其他字符)
package stringdemo;

import java.util.Scanner;

public class StringTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入字符串");
        String next = sc.next();
        int capital = 0;
        int smallLetter = 0;
        int numberCount = 0;
        for (int i = 0; i < next.length(); i++) {
            char c = next.charAt(i);
            if (c >= 'A' && c <= 'Z') {
                capital++;
            }
            if (c >= 'a' && c <= 'z') {
                smallLetter++;
            }
            if (c >= 48 && c <= 57) {
                numberCount++;
            }
//            System.out.println(c);
        }
        System.out.println("大寫字母有:" + capital + "個");
        System.out.println("小寫字母有:" + smallLetter + "個");
        System.out.println("數字有:" + numberCount + "個");
    }
}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=33003:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringTest
請輸入字符串
AZRTazqwer39473
大寫字母有:4個
小寫字母有:6個
數字有:5個

Process finished with exit code 0

6、練習-拼接字符串和反轉

6.1、拼接字符串

  • 定義一個方法,把int數組中的數據按照指定的格式拼接成一個字符串返回,調用該方法,并在控制臺輸出結果。
package stringdemo;

public class StringTest {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        String s = arrToString(arr);
        System.out.println(s);
    }

    public static String arrToString(int[] arr) {
        if (arr == null) {
            return "";
        }
        if (arr.length == 0) {
            return "[]";
        }
        String result = "[";
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                result = result + arr[i];
            } else {
                result = result + arr[i] + ", ";
            }
        }
        result = result + "]";
        return result;
    }
}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=33811:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringTest
[1, 2, 3]

Process finished with exit code 0

6.2、字符串反轉

  • 定義一個方法,實現(xiàn)字符串反轉。鍵盤錄入一個字符串,調用該方法后,在控制臺輸出結果,例如,鍵盤錄入abc,輸出結果cba
package stringdemo;

import java.util.Scanner;

public class StringTest {
    public static void main(String[] args) {
        System.out.println(reverser());
    }

    public static String reverser() {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入字符串");
        String str = sc.next();
        String result = "";
        for (int length = str.length() - 1; length >= 0; length--) {
            char c = str.charAt(length);
            result = result + c;
        }
        return result;
    }
}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=34637:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringTest
請輸入字符串
abc
cba

Process finished with exit code 0

7、較難練習-金額轉換

String(字符串),# 常用API,開發(fā)語言,java,String

package stringdemo;

import java.util.Scanner;

public class StringTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int money;
        while (true) {
            System.out.println("請輸入一個金額");
            money = sc.nextInt();
            if (money >= 0 && money <= 9999999) {
                break;
            } else {
                System.out.println("金額無效");
            }
        }
        String moneyStr = "";
        while (true) {
            int ge = money % 10;
            String capitalNumber = getCapitalNumber(ge);
            moneyStr = capitalNumber + moneyStr;

            money = money / 10;

            if (money == 0) {
                break;
            }
        }
        int count = 7 - moneyStr.length();
        for (int i = 0; i < count; i++) {
            moneyStr = "零" + moneyStr;
        }
        System.out.println(moneyStr);

        String[] arr = {"佰", "拾", "萬", "仟", "佰", "拾", "元"};
        String result = "";
        for (int i = 0; i < moneyStr.length(); i++) {
            char c = moneyStr.charAt(i);
            result = result + c + arr[i];
        }
        System.out.println(result);
    }

    public static String getCapitalNumber(int number) {
        String[] arr = {"零", "壹", "貳", "叁", "肆", "伍", "陸", "柒", "捌", "玖"};
        return arr[number];
    }

}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=2152:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringTest
請輸入一個金額
2135
零零零貳壹叁伍
零佰零拾零萬貳仟壹佰叁拾伍元

Process finished with exit code 0

?8、練習-手機號屏蔽-身份證號碼信息查看-游戲罵人敏感詞替換

  • String substring (int beginIndex,int? endIndex)
  • 截?。ㄗ⒁恻c:包頭不包尾,包左不包右,只有返回值才是截取的小串)
  • String substring(int? beginIndex)
  • 截取到末尾

8.1、手機號屏蔽

package stringdemo;

public class StringTest {
    public static void main(String[] args) {
        String phoneNumber = "13112349468";

        String start = phoneNumber.substring(0, 3);

        String end = phoneNumber.substring(7);

        String result = start + "****" + end;

        System.out.println(result);
    }
}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=3056:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringTest
131****9468

Process finished with exit code 0

8.2、身份證號碼信息查看

package stringdemo;

public class StringTest {
    public static void main(String[] args) {
        String id = "321281202308131234";

        String year = id.substring(6, 10);
        String month = id.substring(10, 12);
        String day = id.substring(12, 14);

        System.out.println("人物信息為:");
        System.out.println("出生年月日:" + year + "年" + month + "月" + day + "日");

        char gender = id.charAt(16);
        //利用ASCII碼表
        //'0'   -->   48       48-48=0
        //'1'   -->   49       49-48=1
        //'2'   -->   50       50-48=2
        //'3'   -->   51       51-48=3
        //'4'   -->   52       52-48=4
        //'5'   -->   53       53-48=5
        //'6'   -->   54       54-48=6
        //'7'   -->   55       55-48=7
        //'8'   -->   56       56-48=8
        //'9'   -->   57       57-48=9

        int num = gender - 48;
        if (num % 2 == 0) {
            System.out.println("性別為:女");
        } else {
            System.out.println("性別為:男");
        }
    }

}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=2804:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringTest
人物信息為:
出生年月日:2023年08月13日
性別為:男

Process finished with exit code 0

8.3、敏感詞替換

  • String replace(舊值,新值)
  • 注意點:只有返回值才是替換之后的結果
package stringdemo;

public class StringTest {
    public static void main(String[] args) {
        String talk = "你玩的真好,SB以后不要再玩了,TMD";

        String[] arr = {"TMD", "CMD", "SB", "MLGB"};

        for (int i = 0; i < arr.length; i++) {

            talk = talk.replace(arr[i], "***");
        }
        System.out.println(talk);
    }

}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\lib\idea_rt.jar=3940:D:\BaiduNetdiskDownload\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\Exception stringdemo.StringTest
你玩的真好,***以后不要再玩了,***

Process finished with exit code 0

???

???文章來源地址http://www.zghlxwxcb.cn/news/detail-645022.html

到了這里,關于String(字符串)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Java Base64字符串與String字符串互轉方法

    Java Base64字符串與String字符串互轉方法

    在使用String轉Base64和Base64轉String上有點小問題,特此記錄。 結果: 也是跟上面差不多的思路,將Base64轉為byte數組,再轉為String

    2024年02月15日
    瀏覽(32)
  • Java的String(字符串詳解)

    Java的String(字符串詳解)

    主要有三種,一種是直接使用常量去構造,要么使用new String來構造,或者還可以使用字符數組的形式。 String 類型本身并不存儲數據,而是存儲指向該字符串的引用,所以字符串類型是一個類,s1是一個引用,指向這個類。而這個類有兩個成員變量,一個名稱為value,這也是一

    2024年02月07日
    瀏覽(25)
  • Java中的字符串String

    Java中的字符串String

    目錄 一、常用方法 1、字符串構造 2、String對象的比較 (1)、equals方法 (2)、compareTo方法 (3)、compareToIgnoreCase方法(忽略大小寫進行比較) 3、字符串查找 4、轉化 (1)數值和字符串轉化 ?編輯 (2)大小寫轉換 (3)字符串轉數組 (4)格式化 5、字符串替換 6、字符串

    2024年02月05日
    瀏覽(21)
  • Java中的String字符串練習

    目錄 Java中的String字符串練習 01-用戶登錄 02-遍歷字符串并統(tǒng)計字符個數 03-字符串拼接 04-字符串反轉 注意點 05-金額轉化(簡單) 代碼解釋: 06-手機號屏蔽 07-身份證號碼查看 易錯點: 08-敏感詞替換 注意點 toCharArray() 是Java中的一個方法,它用于將字符串轉換為字符數組。 方法簽

    2024年03月28日
    瀏覽(26)
  • Java截取String字符串的方法

    1.指定字符截取字符串,返回字符串數組 2.指定索引,截取字符串 3.通過StringUtils類截取字符串

    2024年04月22日
    瀏覽(23)
  • Java 字符串數組定義_「string數組」string 數組怎么定義

    前些天發(fā)現(xiàn)了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站 點擊跳轉瀏覽。 String arr[] = new String[10]; //創(chuàng)建一個長度為10的String 類型數組。 String arr[] = {“張三”,“李四”}; 這個是最常用的 String[] arr = new String[10];

    2024年02月15日
    瀏覽(26)
  • String字符串分割的3種方法 Java

    使用了 split(string) 方法通過指定分隔符將字符串分割為數組 在java.lang包中有String.split()方法,返回是一個數組?!?”和“|”都是轉義字符,必須得加\\\"“; 如果用“.”作為分隔的話,必須是如下寫法:String.split(”.“),這樣才能正確的分隔開,不能用String.split(”.“); 如果用“

    2024年01月24日
    瀏覽(22)
  • java8 list對象string字符串求和

    Java 8 中可以使用 Stream API 和 reduce() 方法來對 List 中的字符串進行求和。 舉個例子,假設你有一個 List 叫做 \\\"numbers\\\",你可以這樣求和: 或者這樣求和 這樣得到的結果就是 \\\"12345\\\"。 在這個例子中,我們使用 reduce() 方法對 List 中的所有字符串進行求和,其中第一個參數是初始值

    2024年02月15日
    瀏覽(33)
  • #java 逗號分隔String字符串 - 數組 - 集合,相互轉換

    1. 準備一個逗號分割字符串 2. 逗號分割字符串轉換為集合(轉換為集合之前會先轉換為數組) 3. 集合轉換為逗號分隔的字符串 4. 數組轉逗號分隔字符串

    2024年02月04日
    瀏覽(37)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包