JAVA---StringBuilder和StringJoiner

StringBuilder可以看成一个容器,创建之后里面的内容是可变的

构建StringBuilder容器---拼接和反转时使用

package com.sstxwd6;

public class StringBuliderDemo {
    //创建对象
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("abdcf");
        //添加
        sb.append(6);
        sb.append('i');
        sb.append(true);
        //反转
        sb.reverse();

        //获取长度
        int length = sb.length();

        //请注意:一般来说,new创建出来的对象,在打印时出来的应该是地址值
        //但是StringBuilder对象在直接打印后,出来的是属性值
        //这是因为StringBuilder是Java自己写好的类,Java在底层对其进行了特殊的处理,使其打印出的是属性值而不是地址值
        System.out.println(sb);
        System.out.println(length);

        //StringBuilder只是一个容器,并不是String类,所以在有必要时,要将其转变为字符串
        String str = sb.toString();
        System.out.println(str);
    }



}

 反转字符串

package com.sstxwd6;
import java.util.Scanner;
public class StringBuliderDemo2 {
    //判断对称字符串
    public static void main(String[] args) {
       //键盘先录入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String str = sc.next();
        //判断是否是对称字符串,将其反转后进行比较即可
        String reversalStr = new StringBuilder(str).reverse().toString();;
        if(str.equals(reversalStr)){
            System.out.println("该字符串是反转字符串");
        }else {
            System.out.println("该字符串不是反转字符串");
        }
    }
}

拼接字符串

package com.sstxwd6;

public class StringBuliderDemo3 {
    //定义一个方法,把int数组中的数据按照指定格式拼接成一个字符串返回
    //调用该方法,并在控制台中输出结果
    public static void main(String[] args) {
        int []arr = {1,2,3,4,5};
        String str = arrToStr(arr);
        System.out.println(str);
    }
    public static String arrToStr(int []arr){
        StringBuilder sb = new StringBuilder("[");
        for (int i = 0; i < arr.length; i++) {
            if (i< arr.length-1){
                sb.append(arr[i]);
                sb.append(",");
            }else {
                sb.append(arr[i]);
            }

        }
        String str = sb.append("]").toString();
        return str;
    }
}

StringJoiner--更便于拼接

StringJoiner可以看成一个容器,创建之后里面的内容是可变的

构造方法

public StringJoiner(间隔符号)       创建一个StringJoiner对象,并指定拼接时的间隔符号

public StringJoiner(间隔符号,开始符号,结束符号)          创建一个StringJoiner对象,并指定拼接时的间隔符号,开始符号,结束符号。

成员方法

package com.sstxwd6;

import java.util.StringJoiner;

public class StringJoinerDemo {
   
    public static void main(String[] args) {
        //创建对象
        StringJoiner sj = new StringJoiner("--");
        //添加元素
        sj.add("2689").add("0hbu").add("#$%");
        //打印结果
        System.out.println(sj);
        
    }



}
package com.sstxwd6;
import java.util.StringJoiner;
public class StringJoinerDemo2 {

    public static void main(String[] args) {
        //创建对象
        StringJoiner sj = new StringJoiner("--","[","]");
        //添加元素
        sj.add("2689").add("0hbu").add("#$%");
        int len = sj.length();
        System.out.println(len);// 所有字符的总个数
        //变成字符串
        String str = sj.toString();
        //打印结果
        System.out.println(str);
    }
}

String------>字符串的类,定义了很多字符串的操作方法

StringBuilder -------->   实现高效拼接和反转字符串

StringJoiner-------->更便于拼接,可以指定拼接时的间隔符号,开始符号,结束符号。

罗马数字的转换

package Test;
import java.util.Scanner;
import java.util.StringJoiner;
public class test1 {
    /*转换罗马数字
    键盘录入一个字符串,要求1:长度只能小于9;要求2:只能是数字
    将内容变成罗马数字
    数字0-9的ASCII码表是48-57
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个长度小于9,且元素只能为数字的字符串:");
        String str ;
        while (true) {
            str = sc.next();
            boolean flag1 = checkStr1(str);
            boolean flag2 = checkStr2(str);
            if (flag1&&flag2){
                break;
            }
            System.out.println("字符串不符合输入规则,请重新输入:");
        }
        System.out.println("正在转换,请您稍等");
        //这里没有使用StringBuilder,是因为如果输出没有拼接,结果不容易观看,使用我采用了拼接模式
        StringJoiner sj = new StringJoiner(",");
        for (int i = 0; i < str.length(); i++) {
            sj.add(Convert(str.charAt(i)-48));
        }
        System.out.println(sj);
    }
    public static String Convert(int a){
        String []arr = {"","I","II","III","IV","V","VI","VII","VIII","IX"};
        return arr[a];
    }
    public static boolean checkStr1(String str){
        if (str.length()>9||str.length()<0){
            return false;
        }else {
            return true;
        }
    }
    public static boolean checkStr2(String str){
        for (int i = 0; i < str.length(); i++) {
            if(str.charAt(i)>=48&&str.charAt(i)<=57){
                continue;
            }else {
                return false;
            }
        }
        return true;
    }

}

调整字符串

package Test;

public class test2 {
    public static void main(String[] args) {
      String strA = "abcde";
      String strB = "cdeab";
      boolean result = check(strA,strB);
        System.out.println(result);
    }
    
    //对字符串进行旋转调整
    public static String adjust(String a){
        String str = a.substring(1)+a.substring(0,1);
        return str ;
    }
    
    //判断两个字符串是否在旋转几次后,可以相同
    public static boolean check(String strA,String strB){
        for (int i = 0; i < strA.length(); i++) {
            strA = adjust(strA);
            if (strA.equals(strB)){
                return  true;
            }
        }
        return false;
    }

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值