String字符串

这篇具有很好参考价值的文章主要介绍了String字符串。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、API和API帮助文档

String字符串,java,java,开发语言
String字符串,java,java,开发语言

package apiDemo;

import java.util.Scanner;

public class ScannerDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个小数");
        double v = sc.nextDouble();
        System.out.println(v);
    }
}

String字符串,java,java,开发语言

2、String概述

String字符串,java,java,开发语言
String字符串,java,java,开发语言

3、String构造方法代码实现和内存分析

String字符串,java,java,开发语言

package stringDemo;

public class StringDemo1 {
    public static void main(String[] args) {
        //1、直接赋值
        String s1 = "abc";
        System.out.println(s1);
        //2、使用new的方式创建
        //空参构造:一个空白的字符串对象
        String s2 = new String();
        System.out.println("q" + s2 + "r");

        //传递一个字符数组,根据字符数组的内容再创建一个新的字符串对象
        //需求:我要修改字符串的内容  abc - Qbc
        //就可以通过创建一个字符数组,通过修改字符数组里面的元素,进而修改字符串
        char[] chs = {'a', 'b', 'c', 'd'};
        String s3 = new String(chs);
        System.out.println(s3);

        //传递一个字节数组,根据字节数组的内容在创建一个新的字符串对象
        //应用场景:以后在网络当中传输的数据其实都是字节信息
        //我们一般要把字节信息进行转换,此时就需要用到这个构造了
        byte[] bytes = {97, 98, 99, 100};
        String s4 = new String(bytes);
        System.out.println(s4);

    }
}

String字符串,java,java,开发语言
String字符串,java,java,开发语言

  • 直接创建

String字符串,java,java,开发语言
String字符串,java,java,开发语言
代码简单,节约内存

  • 使用new创建
    String字符串,java,java,开发语言
    有new就会开辟一个新的小空间,地址值不同不会复用浪费空间

4、字符串的比较

String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言

package stringDemo;

import java.util.Scanner;

public class StingDemo2 {
    public static void main(String[] args) {
        String s1 = new String("abc");
        String s2 = "abc";
        System.out.println(s1 == s2);

        System.out.println(s1.equals(s2));

        String s3 = "Abc";
        System.out.println(s1.equals(s3));
        System.out.println(s1.equalsIgnoreCase(s3));

        //键盘录入的字符串和代码中定义的字符串比较

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();
        System.out.println(str == s2);
        //输出false,next方法底层也是new出来的
        //以后只要想比较字符串的内容,就必须要用String里面的方法
    }

}

String字符串,java,java,开发语言

  • 案例:用户登录
    String字符串,java,java,开发语言
package stringDemo;

import java.util.Scanner;

public class StringDemo3 {
    public static void main(String[] args) {
        //读题拆解法

        //1.定义两个变量记录用户名和密码
        String name = "lisi";
        String password = "123456";
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < 3; i++) {
            //2、键盘录入用户名和密码

            System.out.println("请输入用户名");
            String userName = sc.next();
            System.out.println("请输入用户密码");
            String userPassword = sc.next();
            //3、比较
            if(name.equals(userName) && password.equals(userPassword)){
                System.out.println("登录成功");
                break;
            }else {
                if(i == 2){
                    System.out.println("最后一次机会用完,账户被锁定");
                }else{
                    System.out.printf("登录失败,用户名或密码错误,您还剩下%d次机会", (2-i));
                }
            }
        }
    }
}

  • 遍历字符串
    String字符串,java,java,开发语言
package stringDemo;

import java.util.Scanner;

public class StringDemo4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //1.键盘输入一个字符串
        System.out.println("请输入一个字符串");
        String str = sc.next();
        //2.遍历
        for (int i = 0; i < str.length(); i++) {
            //i 依次表示字符串的每一个索引
            char c = str.charAt(i);
            System.out.println(c);
        }
    }
}

  • 统计字符个数
    String字符串,java,java,开发语言
package stringDemo;

import java.util.Scanner;

public class StringDemo5 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();
        int bigCount = 0;
        int smallCount = 0;
        int numCount = 0;
        int otherCount = 0;
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c >= 'a' && c <= 'z'){
                smallCount ++;
            }else if(c >= 'A' && c <= 'Z'){
                bigCount ++;
            }else if(c >= '0' && c <= '9'){
                numCount ++;
            }else{
                otherCount ++;
            }

        }
        System.out.println("大写字母个数" + bigCount);
        System.out.println("小写字母个数" + smallCount);
        System.out.println("数字个数" + numCount);
        System.out.println("其他字符个数" + otherCount);
    }
}

  • 拼接字符串
    String字符串,java,java,开发语言
package stringDemo;

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

    //1.我要干嘛 ---- 遍历数组并把数组拼接成一个字符串
    //2、我干这件事情需要什么才能完成 ----- 数组
    //3、我干完了是否要把结果返回给调用处 ---- 返回字符串

    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 += arr[i];
            }else {
                result += (arr[i] + ",");
            }
        }
        result += "]";
        return result;
    }
}

String字符串,java,java,开发语言

  • 字符串反转
    String字符串,java,java,开发语言
package stringDemo;

import java.util.Scanner;

public class StringDemo7 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();
        String s = reverse(str);
        System.out.println("反转后的字符串是" + s);
    }
    public static String reverse(String str){
        // str.length()forr 回车直接生成,选中一个变量 shift+f6 批量修改
        String str1 = "";
        for (int i = str.length() - 1; i >= 0; i--) {
            char c = str.charAt(i);
            str1 += c;
        }
        return str1;
    }
}

String字符串,java,java,开发语言

  • 金额转换
    String字符串,java,java,开发语言
package stringDemo;

import java.util.Scanner;

public class StringDemo8 {
    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 = "";
        //得到money中的每一位数字
        while (true){
            int ge = money % 10;
            String capitalNumber = getCapitalNumber(ge);
            moneyStr = capitalNumber + moneyStr;
            money /= 10;
            if(money == 0){
                break;
            }
        }
        //在前面补0,补齐7位
        int count = 7 - moneyStr.length();
        for (int i = 0; i < count; i++) {
            moneyStr = "零" + moneyStr;
        }
        String result = "";
        //加上金额的单位
        String[] arr = {"佰", "拾", "万", "仟", "佰", "拾", "元"};
        for (int i = 0; i < moneyStr.length(); i++) {
            char c = moneyStr.charAt(i);
            result = result + c + arr[i];
        }
        System.out.println("转换后的金额:" + result);
    }

    //1.定义一个方法 1 --- 壹
    public static String getCapitalNumber(int num){
        String[] arr = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
        return arr[num];
    }
}


String字符串,java,java,开发语言

  • 手机号屏蔽
    String字符串,java,java,开发语言
package stringDemo;

public class StringDemo9 {
    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);
    }
}

String字符串,java,java,开发语言

  • 敏感词替换
    String字符串,java,java,开发语言
package stringDemo;

public class StringDemo10 {
    public static void main(String[] args) {
        //获取说的话
        String talk = "你玩的真好,下次不要玩了,TMD,SB";
        //定义一个敏感词库
        String[] arr = {"TMD", "CNM", "SB", "MLGB"};

        for (int i = 0; i < arr.length; i++) {
            talk = talk.replace(arr[i], "***");
        }
        System.out.println(talk);
    }
}

String字符串,java,java,开发语言

StringBuilder

使用场景:1.字符串拼接。2、字符串反转
String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言

  • 常用方法练习
package stringBuilderDemo;

public class StringBuilderDemo1 {
    public static void main(String[] args) {
        //1.创建对象
        StringBuilder sb = new StringBuilder("abc");
        //2.添加元素
//        sb.append(123);
//        sb.append("xyz");
        //输出  abc123xyz
        sb.reverse(); //cba

        //StringBuilder是java已经写好的类,java在底层对他做了一些特殊处理
        //打印对象不是地址值而是属性值
        System.out.println(sb);

        sb.append("sdf");
        // toString方法将StringBuilder对象转换成字符串,StringBuilder只是一个字符串操作工具,并不是字符串
        String str = sb.toString();
        System.out.println(str);//cbasdf
    }
}

  • 对称字符串
package stringBuilderDemo;

import java.util.Scanner;

public class StringBuilderDemo2 {
    public static void main(String[] args) {
        //1.键盘输入字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();
        //2.反转键盘输入的字符
//        StringBuilder sb = new StringBuilder();
//        sb.append(str);
//        sb.reverse();
//        System.out.println(sb);
        StringBuilder sb = new StringBuilder().append(str).reverse(); //链式编程
        if (str.equals(sb.toString())){
            System.out.println("是对称字符串");
        }else {
            System.out.println("不是对称字符串");
        }
    }
}

  • StringBuilder实现字符串拼接
    String字符串,java,java,开发语言
package stringBuilderDemo;

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

    public static String arrToString(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("]");
        return sb.toString();
    }
}

String字符串,java,java,开发语言

StringJoiner

String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言

package stringBuilderDemo;

import java.util.StringJoiner;

public class Demo4 {
    public static void main(String[] args) {
        //1、创建对象
        StringJoiner sj = new StringJoiner(",", "[", "]");
        //2、添加元素
        sj.add("1").add("2").add("3");
        //3、打印
        System.out.println(sj);
        System.out.println(sj.length());
        System.out.println(sj.toString());
    }
}

String字符串,java,java,开发语言
String字符串,java,java,开发语言

字符串原理

String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言
String字符串,java,java,开发语言

综合练习

  • 转换罗马数字
    String字符串,java,java,开发语言
package text;

import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        //1.键盘输入一个字符串
        Scanner sc = new Scanner(System.in);
        String str;
        //2.检验字符串是否满足规则
        while (true) {
            System.out.println("请输入一个字符串");
            str = sc.next();
            boolean flag = checkStr(str);
            if(flag){
                break;
            }else{
                System.out.println("当前字符串不符合规则,请重新输入");
                continue;
            }
        }
        //3.字符转换
        StringBuilder result = new StringBuilder();
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
//            System.out.println(c);
//            System.out.print(changeLouMa(c - '0'));
            result.append(changeLouMa(c - '0'));
        }
        //4、输出结果
        System.out.println(result);

    }
    //将数字转换成罗马数字
    public static String changeLouMa(int number){
        String[] arr = {"","Ⅰ","Ⅱ","Ⅲ","Ⅳ","Ⅴ","Ⅵ","Ⅶ","Ⅷ","Ⅸ"};
        return arr[number];
    }

    public static boolean checkStr(String str){
        if (str.length() > 9){
            return false;
        }
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c < '0' || c > '9' ){
                return false;
            }
        }
        return true;
    }


}

  • 调整字符串
    String字符串,java,java,开发语言
    方法一,使用subString截取
package text;

public class Test2 {
    public static void main(String[] args) {
        //1、定义两个字符串
        String strA = "abcde";
        String strB = "cdeab";
        //2、旋转字符串并比较
        boolean result = check(strA, strB);
        System.out.println(result);
    }

    //比较
    public static boolean check(String strA, String strB){
        for (int i = 0; i < strA.length(); i++) {
            strA = rotate(strA);
            if (strA.equals(strB)){
                return true;
            }
        }
        return false;
    }

    //旋转字符串
    public static String rotate(String str){
        char first = str.charAt(0);
        String end = str.substring(1);
        return end + first;
    }
}

方法二,使用字符数组文章来源地址https://www.toymoban.com/news/detail-575258.html

package text;

public class Test3 {
    public static void main(String[] args) {
        //1、定义两个字符串
        String strA = "abcde";
        String strB = "cdeab";
        //2、旋转字符串并比较
        boolean result = check(strA, strB);
        System.out.println(result);
    }

    //比较
    public static boolean check(String strA, String strB){
        for (int i = 0; i < strA.length(); i++) {
            strA = rotate(strA);
            if (strA.equals(strB)){
                return true;
            }
        }
        return false;
    }

    //旋转字符串
    public static String rotate(String str){
        //可以把字符串先变成一个字符数组,然后调整字符数组里面的数组,最后再把字符数组变成字符串
        char[] arr = str.toCharArray();

        char first = arr[0];
        for (int i = 0; i < arr.length-1; i++) {
            arr[i] = arr[i+1];
        }
        arr[arr.length -1] = first;
        //使用字符数组创建一个字符串对象
        String result = new String(arr);
        return result;
    }
}

  • 键盘输入任意字符串,打乱里面的内容
package text;

import java.util.Random;
import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) {
        //1、键盘录入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();
        //2、转换成字符数组,并打乱
        String result = changeStr(str);
        //3、输出结果
        System.out.println(result);
    }
    //从0索引开始,跟一个随机索引进行位置交换
    //当数组里面的每一个元素都跟随机索引交换完毕后,内容就被打乱了
    public static String changeStr(String str){
        char temp; //用于交换
        char[] arr = str.toCharArray();
        for (int i = 0; i < arr.length; i++) {
            int index = new Random().nextInt(arr.length);
                temp = arr[i];
                arr[i] = arr[index];
                arr[index] = temp;
        }
        str = new String(arr);
        return str;
    }
}

  • 生成验证码
    内容:可以是小写字母,大写字母,数字。
    规则:长度为5(四个字母一个数字,数字位置任意)
package text;

import java.util.Random;

public class Test5 {
    public static void main(String[] args) {
        /*
        生成验证码
        内容:可以是小写字母,大写字母,数字
        规则:长度为5(四个字母一个数字,数字位置任意)
         */
        //1.可以把所有的大写字母,小写字母都放在一个数组当中
        String letter = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String num = "0123456789";
        //2、从数组中随机获取5次
        char[] arr = letter.toCharArray();
        char[] arr2 = new char[5];
        for (int i = 0; i < 5; i++) {
            int index = new Random().nextInt(52);
            arr2[i] = arr[index];
        }
        //3、生成0-9之间的随机数,去替换上面生成的数组随机位置的字母
        char[] arr3 = num.toCharArray();
        int randomNum = new Random().nextInt(10); //产生随机数字
        int index = new Random().nextInt(5); //产生随机要替换的位置
        arr2[index] = arr3[randomNum];
        System.out.println(arr2);
    }
}

  • 给定两个字符串形式表示的非负数num1和num2,返回num1和num2的乘积,他们的乘积也表示为字符串形式
package text;

public class Test6 {
    public static void main(String[] args) {
        /*
        给定两个字符串形式表示的非负数num1和num2,返回num1和num2的乘积,他们的乘积也表示为字符串形式
         */
        String numStr1 = "123456";
        String numStr2 = "789";
        //将数字字符串转换成数字,并计算乘积
        int result = change(numStr1) * change(numStr2);
        //将乘积转换成字符串,并输出
        String resultStr = result + "";
        System.out.println(resultStr);
    }
    public static int change(String str){
        char[] arr = str.toCharArray();
        int number = 0;
        for (int i = arr.length - 1; i >= 0; i--) {
            number += Math.pow(10, arr.length - 1 - i);
        }
        return number;
    }
}

  • 给你一个字符串s,由若干个单词组成,单词前后用一些空格字符隔开,返回字符串中最后一个单词的长度,单词是指仅有字母组成、不包含任何空格字符的最大子字符串。
package text;

public class Test7 {
    public static void main(String[] args) {
        /*
        给你一个字符串s,由若干个单词组成,单词前后用一些空格字符隔开
        返回字符串中最后一个单词的长度
        单词是指仅有字母组成、不包含任何空格字符的最大子字符串
         */
        String str = new String("hello world"); //这里也可以自己修改成键盘录入
        String result = str.substring(checkIndex(str));
        System.out.println(result);
    }

    //找到倒数第一空格的索引,如果没有空格(表示只有一个单词)返回0索引
    public static int checkIndex(String str){
        char[] arr = str.toCharArray();
        for (int i = arr.length - 1; i >= 0 ; i--) {
            if (arr[i] == ' '){
                return i + 1;
            }
        }
        return 0;
    }
}

到了这里,关于String字符串的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 字符串数组定义_「string数组」string 数组怎么定义

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 点击跳转浏览。 String arr[] = new String[10]; //创建一个长度为10的String 类型数组。 String arr[] = {“张三”,“李四”}; 这个是最常用的 String[] arr = new String[10];

    2024年02月15日
    浏览(51)
  • String字符串分割的3种方法 Java

    使用了 split(string) 方法通过指定分隔符将字符串分割为数组 在java.lang包中有String.split()方法,返回是一个数组。“.”和“|”都是转义字符,必须得加\\\"“; 如果用“.”作为分隔的话,必须是如下写法:String.split(”.“),这样才能正确的分隔开,不能用String.split(”.“); 如果用“

    2024年01月24日
    浏览(43)
  • #java 逗号分隔String字符串 - 数组 - 集合,相互转换

    1. 准备一个逗号分割字符串 2. 逗号分割字符串转换为集合(转换为集合之前会先转换为数组) 3. 集合转换为逗号分隔的字符串 4. 数组转逗号分隔字符串

    2024年02月04日
    浏览(53)
  • Java字符串知多少:String、StringBuffer、StringBuilder

    String 是 Java 中使用得最频繁的一个类了,不管是作为开发者的业务使用,还是一些系统级别的字符使用, String 都发挥着重要的作用。 String 是 不可变 的、 final 的,不能被继承,且 Java 在运行时也保存了一个字符串池(String pool) ,就使得 String 变得很特殊。 实现三个接口:

    2024年02月06日
    浏览(52)
  • java 字符串转数组(String to Array)

    java 字符串转数组(String to Array) 数组转List、 判断String数组中是否包含某个字符串

    2024年02月12日
    浏览(49)
  • Java中String字符串替换3种方法详解

    replace() 方法用于将目标字符串中的指定字符(串)替换成新的字符(串) 字符串.replace(String oldChar, String newChar) replaceFirst() 方法用于将目标字符串中匹配某正则表达式的第一个子字符串替换成新的字符串 字符串.replaceFirst(String regex, String replacement) replaceAll() 方法用于将目标字

    2024年02月11日
    浏览(83)
  • java8 list对象string字符串求和

    Java 8 中可以使用 Stream API 和 reduce() 方法来对 List 中的字符串进行求和。 举个例子,假设你有一个 List 叫做 \\\"numbers\\\",你可以这样求和: 或者这样求和 这样得到的结果就是 \\\"12345\\\"。 在这个例子中,我们使用 reduce() 方法对 List 中的所有字符串进行求和,其中第一个参数是初始值

    2024年02月15日
    浏览(58)
  • Java 字符串中删除子字符串的9种方法详细内容(remove substring from String)

    Java 中的字符串中删除子字符串有以下方法: 1.Using replace method使用替换方法 2.Using Charsequence使用字符序列 3.Replace the Substring with an empty string用空字符串替换子字符串 4.Using String’s replaceFirst method使用 String 的 replaceFirst 方法 5.replaceFirst() method 6.Using replaceAll method 使用 replaceAll 方

    2024年02月16日
    浏览(40)
  • 【Java】Java 中格式化字符串:String.format() 方法

    本文仅供学习参考! 相关文章地址: https://www.cnblogs.com/Dhouse/p/7776780.html https://www.javatpoint.com/java-string-format https://www.geeksforgeeks.org/java-string-format-method-with-examples/ 前言 虽然 System.out.println() 适合调试和显示简单消息,但它不太适合格式化字符串。格式化字符串不仅显示字符串

    2024年02月11日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包