Java学习记录(四)

字符串

(1)

在字符串中利用length()方法能得到字符串的长度,例如:

String str = " 123qqww ";

int length = str.length;

此时length则是该字符串的长度。

利用charAt()方法能得到字符串中第i个索引的元素(注意,索引与数组相同,从0开始)

例如:

String str = " qwerdf"

char c = s.charAt(1)

此时返回的是该字符串1索引的元素,即w。

例子如下:使用上述方法对一个字符串进行对数字,大写,小写字母个数的统计

import java.util.Scanner;

public class StringDemo2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你想要统计的字符串:");
        String str = sc.next();
        int count = str.length();
        //count1表示数字格式,count2表示大写字母个数,count3表示小写字母个数
        int count1 = 0,count2 = 0,count3 = 0;
        char[] a = new char[count];
        //使用Ascll编码来进行分类
        for (int i = 0; i < count; i++) {
            int temp = (int)(str.charAt(i));
            if(temp >= 48 && temp<= 57){
                count1 ++;
            }
            else if(temp >= 65 && temp <= 90){
                count2 ++;
            }
            else if(temp >= 97 && temp <= 122){
                count3 ++;
            }
        }
        System.out.println("数字个数是" + count1 +" "+ "大写字母个数是" +" "+ count2 +" "+ "小写字母是" + count3);
    }
}

本题使用Ascll编码来对数字,大小写进行分类并统计。

但在Java中,在char类型比较时,也会自动转化为Ascll码进行比较,即也能如下实现上述功能

import java.util.Scanner;

public class StringDemo3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你想要统计的字符串:");
        String str = sc.next();
        int count = str.length();
        //count1表示数字格式,count2表示大写字母个数,count3表示小写字母个数
        int count1 = 0,count2 = 0,count3 = 0;
        char[] a = new char[count];
        for (int i = 0; i < count; i++) {
            char temp = str.charAt(i);
            if(temp >= '0' && temp<= '9'){
                count1 ++;
            }
            else if(temp >= 'A' && temp <= 'Z'){
                count2 ++;
            }
            else if(temp >= 'a' && temp <= 'z'){
                count3 ++;
            }
        }
        System.out.println("数字个数是" + count1 +" "+ "大写字母个数是" +" "+ count2 +" "+ "小写字母是" + count3);
    }
}

(2)本例题为实现拼接操作,将一个int类型的数组通过字符串输出的形式,输出为[1,2,3,4,5,6]

例如定义一个数组为:int[] a = {1,2,3,55,45},输出为[1,2,3,55,45]

public class StringDemo4 {
    public static void main(String[] args) {
        int[] a = {1,2,3,55,45};
        System.out.println(link(a));
    }
    public static String link(int[] a){
        if(a == null){
            return "";
        }
        String str = "[";
        for (int i = 0; i < a.length; i++) {
            if(i != (a.length - 1)){
                str = str + a[i] +", ";
            }else{
                str = str + a[i];
            }
        }
        str = str + "]";
        return str;
    }
}

(注意)在字符串拼接当中,直接使用+进行拼接。

(3)本例题为字符串的反转,也是使用+进行字符串的拼接

public class StringDemo5 {
    public static void main(String[] args) {
        String a = "qq123we";
        String str1 = turn(a);
        System.out.println(str1);
    }
    public static String turn(String a){
        int len = a.length();
        String str = new String();
        for (int i = len - 1; i >= 0; i--) {
            str = str + a.charAt(i);
        }
        return str;
    }
}

(4)字符串的截取,主要采用substring方法,substring方法格式为

str.substring(a,b);注意:此时截取的时索引a到b-1的数据,即包含左边边界,但是不包含右边界。

例如:

String a = "1254788"

a.substring(1,3);

截取的是“25”,即1号索引到3-1就是2号索引。

(5)字符串的替代,主要采用replace方法,格式为

str.replace(a,b); a代表字符串中原来的值,b代表替换a的值

例如

String str = "Java真的是太TMD有趣了";

str = str.replace("TMD",***);(注意:直接写str.replace(a,b),原字符串里的数据是不会改变的,要用一个新的字符串来接受替换的字符串)

此时打印出来会显示  (Java真的是太***有趣了)。

(6)创建字符串还有一种方法,用StringBuilder进行创建,但创建出来的是StringBuilder类型。

//可以将StringBuilder看作一种容器工具,将字符串传入该容器中,进行拼接,逆转转操作之后再用toString方法转化为字符串输出

格式为 StringBuilder sb = new StringBuilder();//字符串可以不定义,默认为空,也可以定义初始字符串,例如StringBuilder sb = new StringBuilder("abc");此时为创建一个初始值为abc的字符串。

StringBuilder append()方法是用来添加元素在字符串中并且返回字符串本身,一般是用来将字符串存储进该容器中进行处理

StringBuilder sb = new StringBuilder("ab");
        sb.append(1);
        System.out.println(sb);

此时则会打印出ab1。

而reverse方法则是反转字符串(注意:此时使用reverse方法后,用StringBuilder创建的原字符串会发生反转)

StringBuilder sb = new StringBuilder("ab");
        sb.append(1);
        sb.reverse();
        System.out.println(sb);

此时打印输出为1ba。

而在完成想要的操作以后,将StringBuilder创建的对象转换为String类型,用toString方法进行转换,在转换之后就能使用字符串相关的方法。

 StringBuilder sb = new StringBuilder("ab");
        sb.append(1);
        sb.reverse();
        String str = sb.toString();
        str = str.replace("a","^^^");
        System.out.println(str);

此时会打印出1b^^^

(6)在字符串中有穿插一些符号的,能用Stringjoiner进行操作(一般不使用)

//也可以将Stringjoiner看作一种容器工具,将字符串传入该容器中,进行操作之后再用toString方法转化为字符串输出,但只能传递字符形式的数值。

例如:StringJoiner sj = new StringJoiner(":", "[", "]");

sj.add("1").add("2");

//格式为(间隔符,开始符,结束符)

即会输出[1:2]样式。

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值