首页 > 编程语言 >Java_5 字符串

Java_5 字符串

时间:2024-01-26 13:55:55浏览次数:20  
标签:字符 Java String int System 字符串 out

Java 字符串

title:(在线学习平台) link:(https://www.acwing.com/) cover:(https://cdn.acwing.com/media/activity/surface/log.png)

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

每个常用字符都对应一个-128 ~ 127的数字,二者之间可以相互转化。注意:目前负数没有与之对应的字符。

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);
    }
}
  • 常用ASCII值:'A'- 'Z'65 ~ 90'a' - 'z'97 - 1220 - 948 - 57
  • 字符可以参与运算,运算时会将其当做整数:
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);
    }
}

2. 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():将字符串转化成字符数组

3. 输入与输出

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 表示字符串
    }
}

4. StringBuilder、StringBuffer

  • String不能被修改,如果打算修改字符串,可以使用StringBuilderStringBuffer

  • 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,int,System,字符串,out
From: https://www.cnblogs.com/jia-ming/p/17989172

相关文章

  • javascript replaceall 正则表达式
    varstr="dogdogdog";varstr2=str.replace(/dog/g,"cat");console.log(str2);参考:https://www.jb51.net/article/23762.htm?tdsourcetag=s_pcqq_aiomsgstr="dogdogdog12";str=str.replace(newRegExp("[d]","g......
  • python中利用变量解压列表、元组、字符串、字典、文件对象、迭代器和生成器等序列
    一、如果知道序列中元素的个数,可以直接进行变量赋值。coords=(102,40)lon,lat=coordsprint(lon)print(lat)text="news"a,b,c,d=textprint(a)print(b)print(c)print(d)二、如果不知道序列中元素的个数,可以通过*变量名来代表多个元素的变量,无论序列是什......
  • 深度解析Java8社招面试题:Lambda序列化到底行不行?
    大家好,我是小米,一个热爱技术分享的小伙伴。今天,我们来聊一个关于Java8的话题,一个颇具技术深度的问题:“社招面试题:Java8中的Lambda表达式可以序列化吗?”废话不多说,让我们一起揭开这个技术的神秘面纱!Lambda表达式的崛起在Java8之前,我们编写代码时常常要依赖匿名内部类,这使得代码显得......
  • 一个软件项目开发的流程汇总java版
    一个软件项目开发的流程汇总java版1.软件开发整体介绍软件开发流程角色分工软件环境2.xxx项目介绍项目介绍:功能架构(管理端,用户端):体现项目中的业务功能模块产品原型:用于展示项目的业务功能,一般由产品经理进行设计技术选型(用户层,网关层,应用层,数据层):展示项目中使用到的技术......
  • java 类默认构造方法
    Java类默认构造方法在学习Java面向对象编程时,我们经常会遇到类的构造方法。构造方法是一种特殊的方法,用于创建和初始化对象。当我们在定义类时没有显式地定义构造方法时,Java会为我们提供一个默认构造方法。本文将介绍Java类的默认构造方法以及其相关知识点。默认构造方法是什么......
  • java 快速删除 idea 里无效的引入
    Java快速删除IDEA里无效的引入在开发Java项目时,我们经常会使用IDE工具,比如IntelliJIDEA。IDEA会自动帮我们管理项目的依赖关系,自动引入所需的库文件。但是随着项目的不断迭代和代码的修改,有时会导致一些库文件变得无效,这给项目带来了不必要的负担。本文将介绍如何快速删......
  • java 判断数组类型
    Java判断数组类型在Java中,数组是一种特殊的数据结构,可以存储多个相同类型的元素。当我们处理数组时,有时候需要判断数组的类型,以便进行相应的操作。本文将介绍几种判断数组类型的方法,并提供相应的代码示例。1.使用instanceof运算符Java中的instanceof运算符用于判断一个对......
  • java 判断数字在某个区间的语法
    Java判断数字在某个区间的语法介绍区间判断语法if语句switch语句示例代码总结介绍在Java编程中,经常需要判断一个数字是否在某个区间内。例如,判断一个学生成绩是否及格,判断一个年龄是否在合法范围等。本文将介绍Java中判断数字在某个区间的语法,并给出相应的代码示例。......
  • java 判断经纬度是否在国内
    判断经纬度是否在国内1.流程图flowchartTDA(开始)B(获取经纬度)C(检查纬度范围)D(检查经度范围)E(判断是否在国内)F(结束)A-->BB-->CC-->DD-->EE-->F2.代码实现步骤步骤1:获取经纬度首先,我们需要获取经纬度的数值。可以通过以下代码获取:doublela......
  • nohup java -jar admin.jar > admin.log & ,什么意思
    这是一个在Linux或Unix系统中使用的命令行指令。让我为您逐个解释每个部分的含义:nohup:表示不挂断运行,并且不受终端关闭的影响。它允许您在退出终端后继续运行命令,即使终端会话已经结束。java-jaradmin.jar:这是要执行的命令,以Java命令行方式运行名为admin.jar的可......