特辣的海藻!2

news/2025/2/24 9:13:10

目录

基础知识点

整型数字-->字符数字

 字符数字-->整型数字

判断 

单个字符转换大小写

字符串转换大小写

读取单个字符

sort()函数

字符串反转

字符串 ---> 字符数组

字符数组 ---> 字符串

trim()


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

方法一:使用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

http://www.niftyadmin.cn/n/5864154.html

相关文章

【计算机网络】OSI模型、TCP/IP模型、路由器、集线器、交换机

一、计算机网络分层结构 计算机网络分层结构 指将计算机网络的功能划分为多个层次&#xff0c;每个层次都有其特定的功能和协议&#xff0c;并且层次之间通过接口进行通信。 分层设计的优势&#xff1a; 模块化&#xff1a;各层独立发展&#xff08;如IPv4→IPv6&#xff0c…

vue从入门到精通(十三):收集表单数据

1.收集表单数据 若:<input type"text”/>&#xff0c;则v-model收集的是value值&#xff0c;用户输入的就是value值。 若:<input type"radio”/>&#xff0c;则v-model收集的是value值&#xff0c;且要给标签配置value值。 若: input type"check…

ASUS/华硕天选4 Plus 锐龙版 FA507X FA707X 原厂Win11 22H2专业版系统 工厂文件 带ASUS Recovery恢复

华硕工厂文件恢复系统 &#xff0c;安装结束后带隐藏分区&#xff0c;带一键恢复&#xff0c;以及机器所有的驱动和软件。 支持型号&#xff1a;FA507XU FA507XV FA507XQ FA507XJ FA507XI, FA707XV, FA707XU, FA707XQ, FA707XJ, FA707XI, FA707XIN 系统版本&#xff1a;Windo…

Bash Shell控制台终端命令合集

最近整理了一下Bash Shell终端的命令,以备后续查用。如下: 1.内建命令 命令描述&在后台启动作业((x))执行数学表达式x.在当前shell中读取并执行指定文件中的命令:什么都不做,始终成功退出[ t ]对条件表达式t进行求值[[ e ]]对条件表达式e进行求值alias为指定的命令定义…

【Python爬虫(60)】解锁社交媒体数据宝藏:Python爬虫实战攻略

【Python爬虫】专栏简介&#xff1a;本专栏是 Python 爬虫领域的集大成之作&#xff0c;共 100 章节。从 Python 基础语法、爬虫入门知识讲起&#xff0c;深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑&#xff0c;覆盖网页、图片、音频等各类数据爬取&#xff…

ASP.NET Core 8.0学习笔记(二十七)——数据迁移:Migrations深入与其他迁移命令

一、数据库架构的管理 1.EF Core提供两种方式来保持EF Core的模型与数据库保持同步。 (1)以数据库为准&#xff1a;反向工程&#xff08;Db First&#xff09;&#xff0c;适用于中大型工程 (2)以代码为准&#xff1a;数据迁移&#xff08;Code First&#xff09;&#xff0c;…

《论基于构件的软件开发方法及其应用》审题技巧 - 系统架构设计师

软考论文写作框架&#xff1a;基于构件的软件开发方法及其应用 一、考点概述 本论题“基于构件的软件开发方法及其应用”主要考察的是软件工程专业中关于基于构件开发&#xff08;CBSD&#xff09;的深入理解与实践应用。考点涵盖以下几个方面&#xff1a; 首先&#xff0c;…

逻辑函数的神经网络实现

1.单层感知器实现基本逻辑函数 先给大家抛出一道例题 &#xff08;一&#xff09;种类 a.OR函数 目标&#xff1a;当至少一个输入为1时&#xff0c;输出1&#xff1b;否则输出0。 权重设置&#xff1a; 输入权重&#xff1a;所有 wi1&#xff08;i1,2,...,m&#xff09;。…