当前位置: 首页 > news >正文

特辣的海藻!2

目录

基础知识点

整型数字-->字符数字

 字符数字-->整型数字

判断 

单个字符转换大小写

字符串转换大小写

读取单个字符

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()

char ch = String.valueOf(num).charAt(0);

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

 字符数字-->整型数字

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

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

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

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()

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

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

String str = "Hello World!";
String restr = new StringBuilder(str).reverse().toString();

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

// 左右交换
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:目标数组的起始位置,从该索引开始存放复制的字符 

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)

                                            起始位置       个数

char[] chs = {'H', 'e', 'l', 'l', 'o'};
String str = new String(chs);

 方法二:使用String.valueOf()

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

 方法三:使用String Builder或 String Buffer

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

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

String str = " Hello World \t\n";
String trimmed str.trim();  // 返回 "Hello World"

Tips:

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

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

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

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);elseSystem.out.println("NO");scan.close();}
}

小小小提普斯:

  1. next()不读入空格符,nextLine()才读入空格符
  2. 任何奇数都可以表示成两个连续整数的和
  3. 对于偶数,只有那些不是2的幂次的才能表示成连续整数的和
  4. 若一个数num是2的幂次,则num不断除以2后,最后的结果为1

http://www.mrgr.cn/news/92065.html

相关文章:

  • Linux7-线程
  • Mac本地部署DeepSeek-r1如何设置文档知识库
  • SOME/IP-SD -- 协议英文原文讲解1
  • SpringBoot+Mybatis-Plus实现动态数据源
  • 详细介绍嵌入式硬件设计
  • 交流异步电动机PI双闭环SVPWM矢量控制Simulink
  • vue3中解决组件间 css 层级问题最佳实践(Teleport的使用)
  • Linux相关命令
  • 【堆】堆的基本概念及操作,堆与优先队列
  • 机器学习数学通关指南——泰勒公式
  • 【HarmonyOS Next】地图使用详解(一)
  • 【大模型】蓝耘智算云平台快速部署DeepSeek R1/R3大模型详解
  • AI2-THOR环境下实现机器人导航、物体定位与抓取
  • linux指令2
  • 以ChatGPT为例解析大模型背后的技术
  • 从零开始制作一个漂亮的悬浮按钮
  • SkyWalking集成Kafka实现日志异步采集经验总结
  • 详解Flask Flash Message(消息闪现)
  • comfy UI节点缺失dlib库处理
  • 基于 go-wrk 在 Windows 环境下对 Go Web 应用进行 HTTP 压力测试