DAY eight

Day8

API (java说明书)

String类

构造方法1.空参数构造法 2.参数是字节数组 3.参数是字符数组
双引号直接写:使用双引号创建的字符串对象,在常量池中,同一个字符串对象,在常量池中仅会存在一份.
比较方法:equals严格比较;equalsIgnoreCase 忽略大小写比较
便利字符串的方法:1: length() 获取字符串长度 2: charAt(索引) 获取指定索引处的字符
1:使用双引号创建出来的字符串对象是常量,可以被多个变量共享使用;2:字符串中所有的方法,都不会改变原字符串的值,方法执行后会得到一个新的字符串对象;
StringBuilder类:代表字符串缓冲区
作用:用于拼接字符串的时候,提升程序的性能,减少字符串拼接过程中产生的字符串常量垃圾;
构造方法 :1.空参数构造方法 2.带字符参数的构造方法
1:append(任意数据) 2.toString() 将魂虫去变成字符串 3.reverse() 反转内容.
String与StringBuilder的转变1:使用StringBuilder的toString方法,可以将字符串缓冲区转成字符串对象;2:使用StringBuilder的构造方法,可以将字符串对象转成字符串缓冲区对象;
String与StringBuilder的区别:1:字符串内容不可改变;2:字符串缓冲区内容可以改变;

eg.1

1.键盘录入一个字符串
2.将该字符串变成字符数组(不能使用toCharArray()方法)
3.将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
4.如果第一位和最后一位的内容不相同,则交换
5.将字符数组中索引为偶数的元素变成'~'
6.打印数组元素的内容
	import java.util.Scanner;
	public class StringToArray {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String line = sc.nextLine();
        char[] ch = new char[line.length()];
        //将该字符串变成字符数组(不能使用toCharArray()方法)
        StringToArray(line, ch);
        //打印数组
        printArray(ch);
        //将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
        HighToLower(ch);
        //打印数组
        printArray(ch);
        //如果第一位和最后一位的内容不相同,则交换
        changeArray(ch);
        //打印数组
        printArray(ch);
        //将字符数组中索引为偶数的元素变成'~'
        changeDouble(ch);
        //打印数组
        printArray(ch);


    }

    public static void StringToArray(String line, char[] ch) {

        for (int i = 0; i < line.length(); i++) {
            ch[i] = line.charAt(i);
        }
    }

    public static void HighToLower(char[] ch) {
        for (int i = 0; i < ch.length; i++) {
            //首先判断是不是大写字母
            //将字符转成对应的数字
            int a = (int) ch[i];
            if (a >= 65 && a <= 90) {
                //转换成小写字母对应的数字
                a = a + 32;
                //把数字转换成小写字母并存入数组
                ch[i] = (char) a;
            } else {
                //不是大写字母
                continue;
            }
        }
    }

    public static void changeArray(char[] ch) {
        //如果最后一个元素和第一个不相同,就交换
        if (ch[0] != ch[ch.length - 1]) {
            char temp = ch[0];
            ch[0] = ch[ch.length - 1];
            ch[ch.length - 1] = temp;
        }
    }

    public static void changeDouble(char[] ch) {
        //遍历数组,判读偶数位,将偶数位置元素更换为~
        for (int i = 0; i < ch.length; i++) {
            if (i % 2 == 0) {
                ch[i] = '~';
            }
        }
    }

    public static void printArray(char[] ch) {
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for (int i = 0; i < ch.length; i++) {
            if (i == ch.length - 1) {
                sb.append(ch[i]);
            } else {
                sb.append(ch[i] + ", ");
            }
        }
        sb.append("]");

        System.out.println(sb.toString());
    }
}

eg.2

1.定义String getStr()方法
功能描述:
获取长度为5的随机字符串,字符串由随机的5个大小写字母组成
2.在main方法中调用上述方法,并打印结果

import java.util.Random;

public class randomStr {
    public static void main(String[] args) {
        //调用方法
        String str = getStr();
        //输出
        System.out.println(str);
    }

    public static String getStr() {
        //构造StringBuilder对象
        StringBuilder sb = new StringBuilder();
        Random r = new Random();
        while (true) {
            
            if (sb.length() == 5) {
                //控制字符串长度为5
                break;
            } else {
				//随机生成65-122的随机数
				int a = r.nextInt(58) + 65;
                //判断生成的随机数在不在大写和小写字母范围内
                if ((a >= 65 && a <= 90) || (a >= 97 && a <= 122)) {
                    //将数字转换成相应的字母
                    char cc = (char) a;
                    //然后将字符添加到sb中
                    sb.append(cc);
                } else {
                    continue;
                }
            }
        }
        String s = sb.toString();
        return s;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值