特辣的海藻!2

基础知识点
整型数字-->字符数字

方法一:使用Character.forDigit()方法

Character.forDigit(int num, int radix)

该方法可以将整型数字转换为对应的字符形式。radix表示进制

Tips:

● 需要转换的整型数字必须在 0 到 radix-1 的范围内,否则会返回空字符(\0)

● 例如,Character.forDigit((15, 10) 会返回空字符,因为15不是有效的十进制数字。、

方法二:通过字符运算

num + '0'

将整型数字加上字符'0'的ASCII值,可以将其转换为对应的字符数字

原理:

● 字符 '0' 的ASCII值是48

● 数字 0 到 9 的ASCII值依次是 48 到 57

● 因此,num + '0' 可以将整型数字转换为对应的字符数字

方法三:使用String.valueOf() 或 Integer.toString()

java 复制代码
char ch = String.valueOf(num).charAt(0);

将整型数字转为字符串取第一个字符

字符数字-->整型数字

方法一:Character.getNumericValue(char ch) 可以将字符数字转换为对应的整型数字

方法二:通过字符运算 ch-'0'
字符数字的Unicode值与字符'0'的Unicode值之差就是对应的整型数字

方法三:使用Integer.parseInt(String s)
将字符数字转换为字符串,然后使用Integer.parseInt(String s)

java 复制代码
int num  = Integer.parseInt(String.valueOf(ch));
判断

Character.isDigit(char ch)

判断指定的字符是否一个数字(0-9)

● 返回值:如果字符是数字,返回true;否则返回false

● 支持的范围:包括ASCII数字(0-9),还包括Unicode中其他语言中的数字字符(如全角数字0-9)

Character.isLetter(char ch)

判断字符是否是字母
Character.isWhitesapce(char ch)

判断字符是否是空白字符 (空格、制表符、换行符等)。

单个字符转换大小写

Character.isLowerCase(char ch) Character.isUpperCase(char ch)

判断字符是否是小写字母或大写字母
Character.toUpperCase(char ch)

将字符转换为大写,如果字符没有对应的大写形式,则返回原字符
Character.toLowerCase(char ch)

将字符转换为小写,如果字符没有对应的小写形式,则返回原字符。

字符串转换大小写

String.toUpperCase()

将字符串中的所有字符转换为大写,返回一个新的字符串
String.toLowerCase()

将字符串中的所有字符转换为小写,返回一个新的字符串

Tips:String类的大小写转换方法返回一个新的字符串,原字符串不会被修改

读取单个字符

方法一:使用 scan.next().charAt(0)

scan.next()返回一个字符串,charAt(0)可以获取字符串的第一个字符
方法二:使用 scan.next().toCharArray()

将输入的字符串转换为字符数组,然后获取第一个字符

java 复制代码
char[] chars = scan.next().toCharArray();
char c1 = chars[0];

方法三:使用 scan.findInLine(".")

可以匹配输入中的第一个字符

sort()函数

Arrays.sort()

在Java中,使用Arrays.sort()对字符数组进行排序是是按照字符的Unicode编码值进行升序排列, 区分大小写。

数字字符'0'到'9'的Unicode值是从48到57,大写字符'A'到'Z'是65到90,小写字母'a'到'z'是97到122。所以如果有一个包含数字、大写和小写字母的字符数组,排序后会是数字先出现,接着是大写字母,最后是小写字母。(数大小)

字符串反转

方法一:适用StringBuilder或StringBuffer(reverse)

java 复制代码
String str = "Hello World!";
String restr = new StringBuilder(str).reverse().toString();

方法二:转换为字符数组并手动反转

java 复制代码
// 左右交换
String str = "te la de hai zao!";
char[] chs = str.toCharArray();

int left = 0, right = chs.length-1;
while(left < right) { 
    char t = chs[left];
    chs[left] = chs[right];
    ch[right] = t;
}
String restr1 = new String(chs);


// 从后往前遍历
String restr2 = "";
for(int i = chs.length-1; i >= 0; i--) {
    restr2 += chs[i];
}

方法三:使用 Collection.reverse() ,将字符串转换为List<Character>后反转。

字符串 ---> 字符数组

方法一:使用 toCharArray()

方法二:用 charAt() 逐个字符读取,一个字符一个字符的把它放入字符数组

方法三:使用 getChars()

getChars(int srcBegin. int srcEnd, char[] dst, int dstBegin)

● srcBegin:源字符串中要复制的起始索引(包含该位置的字符)

● srcEnd:源字符中要复制的结束索引(不包含该位置的字符)

● dst:目标字符数组

● dstBegin:目标数组的起始位置,从该索引开始存放复制的字符

java 复制代码
String str = "Java is fun";
char[] dst = new char[7];

// 复制索引7到9的字符("fun")到dst数组的索引2处
str.getChars(7, 10, dst, 2);
System.out.println(Arrays.toString(dst)); // 输出: [\0, \0, f, u, n, \0, \0]
字符数组 ---> 字符串

方法一:使用String构造函数 (new String)

String str = new String(chs, int offset, int count)

起始位置 个数

java 复制代码
char[] chs = {'H', 'e', 'l', 'l', 'o'};
String str = new String(chs);

方法二:使用String.valueOf()

java 复制代码
char[] chs = {'H', 'e', 'l', 'l', 'o'};
String str = String.valueOf(chs);

方法三:使用String Builder或 String Buffer

java 复制代码
char[] chs = {'H', 'e', 'l', 'l', 'o'};
StringBuilder sb = new StringBuilder();
sb.append(chs);
String str = sb.toString();
trim()

功能:去除字符串首尾的空白字符(包括空格、制表符、换行符、回车符等)

java 复制代码
String str = " Hello World \t\n";
String trimmed str.trim();  // 返回 "Hello World"

Tips:

● 不修改原字符串,而是返回一个新字符串

● 不会去除字符串中间的空白

3.压缩字符串 - 蓝桥云课

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str1 = scan.next();
        // 局部变量一定要初始化
        String str2 = "";
        char[] chs = str1.toCharArray();

        // 字符个数计数器 注意不是初始化为0 因为它自己本身也算一个字符
        int count = 1;
        for(int i = 0; i < str1.length(); i++) {
            if(i < str1.length()-1 && chs[i] == chs[i+1])
                count++;
            else {
                if(count < 1)
                    str2 += chs[i];
                else {
                    str2 += chs[i];
                    str2 += count;
                    count = 1;
                }
            }
        }
        if(str2.length() < str1.length())
            System.out.println(str2);
        else
            System.out.println("NO");
        scan.close();
    }
}

小小小提普斯:

  1. next()不读入空格符,nextLine()才读入空格符
  2. 任何奇数都可以表示成两个连续整数的和
  3. 对于偶数,只有那些不是2的幂次的才能表示成连续整数的和
  4. 若一个数num是2的幂次,则num不断除以2后,最后的结果为1
相关推荐
专注API从业者16 分钟前
Open Claw 京东商品监控选品实战:一键抓取、实时监控、高效选品
java·服务器·数据库
摇滚侠33 分钟前
DBeaver 导入数据库 导入 SQL 文件 MySQL 备份恢复
java·数据库·mysql
keep one's resolveY1 小时前
SpringBoot实现重试机制的四种方案
java·spring boot·后端
天空属于哈夫克32 小时前
企业微信API常见的错误和解决方案
java·数据库·企业微信
摇滚侠2 小时前
VMvare 虚拟机 Oracle19c 安装步骤,远程连接 Oracle19c,百度网盘安装包
java·oracle
梁萌2 小时前
idea报错找不到XX包的解决方法
java·intellij-idea·启动报错·缺少包
Agent产品评测局2 小时前
生产排期与MES/ERP系统打通,实操方法详解 —— 2026企业级智能体自动化选型与实战指南
java·运维·人工智能·ai·chatgpt·自动化
阿丰资源3 小时前
基于Spring Boot的电影城管理系统(直接运行)
java·spring boot·后端
呱牛do it3 小时前
企业级门户网站设计与实现:基于SpringBoot + Vue3的全栈解决方案(Day 8)
java
消失的旧时光-19434 小时前
Spring Boot 工程化进阶:统一返回 + 全局异常 + AOP 通用工具包
java·spring boot·后端·aop·自定义注解