首页 > 编程语言 >Java-05字符串

Java-05字符串

时间:2024-01-27 16:44:37浏览次数:40  
标签:字符 Java String 05 int System 字符串 out

tip:[start]字符串是计算机与人类沟通的重要手段。——闫学灿tip:[end]

字符与整数的联系——ASCII码

  • 每个常用字符都对应一个-128 ~ 127的数字,二者之间可以相互转化。

    • 注意:目前负数没有与之对应的字符。
  • 常用ASCII值:

    • 'A' - 'Z'是65 ~ 90
    • 'a' - 'z'是97 - 122
    • '0' - '9'是 48 - 57

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        char c = 'a';
        System.out.println((int)c);

        int a = 66;
        System.out.println((char)a);
    }
}

// 字符可以参与运算,运算时会将其当做整数:
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int a = 'B' - 'A';
        int b = 'A' * 'B';
        char c = 'A' + 2;

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }
}

String类

基本概念


// 初始化:
String a = "Hello World";
String b = "My name is ";
String x = b;  // 存储到了相同地址
String c = b + "yxc";  // String可以通过加号拼接
String d = "My age is " + 18;  // int会被隐式转化成字符串"18"
String str = String.format("My age is %d", 18);  // 格式化字符串,类似于C++中的sprintf
String money_str = "123.45";
double money = Double.parseDouble(money_str);  // String转double

// 只读变量,不能修改
// 例如:
String a = "Hello ";
a += "World";  // 会构造一个新的字符串

// 访问String中的字符:
String str = "Hello World";
for (int i = 0; i < str.length(); i ++ ) {
    System.out.print(str.charAt(i));  // 只能读取,不能写入
}

常用API:

  • length():返回长度

  • split(String regex):分割字符串

  • indexOf(char c)indexOf(String str)lastIndexOf(char c)lastIndexOf(String str):查找,找不到返回-1

  • equals():判断两个字符串是否相等,注意不能直接用==

  • compareTo():判断两个字符串的字典序大小,负数表示小于,0表示相等,正数表示大于

  • startsWith():判断是否以某个前缀开头

  • endsWith():判断是否以某个后缀结尾

  • trim():去掉首尾的空白字符

  • toLowerCase():全部用小写字符

  • toUpperCase():全部用大写字符

  • replace(char oldChar, char newChar):替换字符

  • replace(String oldRegex, String newRegex):替换字符串

  • substring(int beginIndex, int endIndex):返回[beginIndex, endIndex)中的子串

  • toCharArray():将字符串转化成字符数组

输入与输出


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str1 = sc.next();  // 输入字符串,遇到空格、回车等空白字符时停止输入
        String str2 = sc.nextLine();  // 输入一整行字符串,遇到空格不会停止输入,遇到回车才会停止

        System.out.println(str1);  // 可以直接输出
        System.out.printf("%s\n", str2);  // 也可以格式化输出,用 %s 表示字符串
    }
}

StringBuilder、StringBuffer

  • String不能被修改,如果打算修改字符串,可以使用StringBuilder和StringBuffer。

  • StringBuffer线程安全,速度较慢;StringBuilder线程不安全,速度较快。


StringBuilder sb = new StringBuilder("Hello ");  // 初始化
sb.append("World");  // 拼接字符串
System.out.println(sb);

for (int i = 0; i < sb.length(); i ++ ) {
    sb.setCharAt(i, (char)(sb.charAt(i) + 1));  // 读取和写入字符
}

System.out.println(sb);

  • 常用API:
    • reverse():翻转字符串

标签:字符,Java,String,05,int,System,字符串,out
From: https://www.cnblogs.com/han-fei/p/17991632

相关文章

  • Java服务通过动态开关 Profiling 实现关键问题定位-故障定位
    作者观测云高级技术专家深圳办公室黄小龙简介Profile通过收集和分析应用程序运行过程中CPU、内存和I/O相关的数据,可以识别应用程序的性能瓶颈和错误,帮助我们更好地了解程序的运行情况。Profile是一种非常有价值的技术,通过Profile可以实现:识别性能瓶颈:Profiling可以帮......
  • 浅克隆和深克隆 :Java中的对象克隆方式探究
    在Java编程中,我们经常需要对对象进行复制或克隆操作.对象克隆是创建一个新的对象,并将原始对象的值复制给新的对象,以便独立使用或修改.在对象克隆中,我们经常遇到两种主要的克隆方式:浅克隆(ShallowClone)和深克隆(DeepClone).本文将介绍这两种克隆方式的概念、区别以及在Java......
  • Java中的枚举
    Java的枚举是一个特殊的数据类型,用于定义一组命名的常量,用关键字enum来声明。这在项目开发中经常会用到,除了可以定义一些常量类来提高代码的复用性外,有些必要情况需要通过枚举,因为枚举这个数类型不是什么字符串七七八八的,比如项目开发中会有公告字段的填充,像aop切面类时通过自定义......
  • java enum枚举实现机制
    在上篇文章中,我们对Java中的枚举类进行了详细的介绍。对于Enum还不了解的小伙伴,可以先预习《Java中的枚举类型(Enum)详解》一文。通过反编译,我们知道Java枚举类会在编译之后转化为一个继承了java.lang.Enum的类,而我们定义的每个枚举值都会在类的初始化阶段被实例化为我们所定义的......
  • 初识JAVA的第4天,循环结构
    day4java新手随笔练习publicclassDoc{Stringname;//属性/***since指明需要最早使用的jak版本*@authorwushen作者名*@paramname参数名*@return返回值情况*@throwsException异常抛......
  • SpringBoot启动项目报错:java.lang.UnsatisfiedLinkError: D:\files\software\jdk-1
    目录问题描述解决方法:问题描述在运行向的时候出现报错:java.lang.UnsatisfiedLinkError:D:\files\software\jdk-15.0.1\jdk-17.0.3.1\bin\tcnative-1.dll:Can'tloadIA32-bit.dllonaAMD64-bitplatform atjava.base/jdk.internal.loader.NativeLibraries.load(Native......
  • windows下java启动失败
    windows下java启动失败一、问题现象微服务原来在linux下部署,现在有客户环境为windowsserver,把linux的包拷到windowsserver下,使用java-jar命令无法启动。同样的包在linux可以启动,就是在windows启动不了。问题提示:现象一:2023-10-2713:40:05.682ERROR11736---[main]o.......
  • 关于javascript的一些笔记(一)
    在script标签内使用import的时候,必须在script标签加上type=“module”当使用script标签加上type="module"的时候,是当所有模块都加载进来才进行工作的,也就是如果html在script标签下面也是可以正常运行的,他是后解析的当使用script标签加上type="module"的时候,script标签里面......
  • 每日一道Java面试题:Java是值传递还是引用传递?
    写在开头Java是值传递还是引用传递?这个问题几乎100%的出现在了各大主流Java面试题中,知识点很小,但很考验面试者对于Java运行的理解,今晚趁着生产投产的空子,过来小聊一下。实参与形参所谓的值传递or引用传递是指方法在调用的过程中实参传递的两种变现形式,那么好,想搞清楚这个问题的......
  • python第三节:Str字符串类型(9)
    str.swapcase()返回原字符串的副本,其中大写字符转换为小写,小写转换为大写。注意:s.swapcase().swapcase()==s 并不一定为真值。例子:arg2='spaciousworldUKUS'arg3='你好spaciousworldUKUS'arg4='你好#¥56helloWORLd'print(arg2.swapcase())print(arg3.swap......