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

特辣的海藻!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()

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

小小小提普斯:

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

相关文章:

  • 达梦数据库学习笔记@1
  • 05C语言——数组
  • 开源工具推荐:监控工具NetData
  • 【NLP算法面经】本科双非,头条+腾讯 NLP 详细面经(★附面题整理★)
  • 【java】类声明的两种形式
  • 7777777777
  • ChatGPT各模型版本对比分析
  • 《论基于构件的软件开发方法及其应用》审题技巧 - 系统架构设计师
  • 深入xtquant:实时行情订阅与数据获取的实战指南
  • 一、哈希——1. 两数之和
  • HTML之JavaScript DOM操作元素(2)
  • 【Opensim】软件显示问题(比例不对,按键遮挡,显示不完整)
  • 深入浅出MySQL:概述与体系结构解析
  • DBAPI如何优雅的实现分页查询功能
  • 根据音频中的不同讲述人声音进行分离音频 | 基于ai的说话人声音分离项目
  • Python|OpenCV-实现人物眨眼检测(21)
  • 【Linux基础】Shell脚本
  • 常用的几种编码方式
  • c++———————————————c++11
  • 通俗理解嵌入式
  • 大型长读长RNA测序数据集发布,有助制定精准诊疗策略
  • 中国人保一季度业绩“分化”:财险净利增超92%,寿险增收不增利
  • 工行一季度净赚841亿元降3.99%,营收降3.22%
  • 浙江官宣:五一假期,没电、没气、没油车辆全部免费拖离高速
  • 《中国奇谭》首部动画电影《浪浪山小妖怪》定档8月2日
  • 在循环往复的拍摄中,重新发现世界