java学习-4-核心类:字符串
实际上字符串String内部是通过一个char[]数组表示的。因此
String s = new String(new char[] {'h','e','l','l','o'};
和
String s = "hello";
是等价的
因为java的字符串作为对象放入常量池的。所以:
字符串比较不要用 “==“
一定用equals。 Srting s1 = "hello";
String s2 = "HELLO".toLowerCase();
System.out.printlin(s1.equals(s2));//true
System.out.printlin(s1==s2);//False
System.out.printlin(s1.equalsIgnoreCase);//忽略大小写的比较
System.out.println("Hello".contains("lo"));//包含
System.out.println("Hello".contains("lo"));//搜索子串
System.out.println("Hello".startsWith("He"));//子串开头
System.out.println("Hello".endsWith("lo"));//子串结尾
System.out.println("hello".substring(2));//llo
System.out.println("hello".substring(2,4));//ll
System.out.println(" \hello\r\n".trim());//去掉首尾空白字符
strip()方法也可以移除字符串首尾空白字符。它和trim()不同的是,类似中文的空格字符\u3000也会被移除:
"\u3000Hello\u3000".strip(); // "Hello"
" Hello ".stripLeading(); // "Hello "
" Hello ".stripTrailing(); // " Hello"
//字符串替换
String s = "Hello";
s.replace('e','~');
另外一种用正则表达式
String s = "A,,B;C ,D";
s.replaceAll("[\\,\\;\\s]+", ","); // "A,B,C,D"
//分割字符串 split()方法
//拼接字符串join()和format
String[] arr = {"A", "B", "C"};
String s = String.join("***", arr); // "A***B***C"
//类型转换
String.valueOf(123); // "123"
String.valueOf(45.67); // "45.67"
String.valueOf(true); // "true"
String.valueOf(new Object()); // 类似java.lang.Object@636be97c
//把字符串转换为int类型:
int n1 = Integer.parseInt("123"); // 123
int n2 = Integer.parseInt("ff", 16); // 按十六进制转换,255
//把字符串转换为boolean类型:
boolean b1 = Boolean.parseBoolean("true"); // true
boolean b2 = Boolean.parseBoolean("FALSE"); // false
//String和char[]的转换
char[] cs = "Hello".toCharArray(); // String -> char[]
String s = new String(cs); // char[] -> String
//通过new String(char[])创建新的String实例时,它并不会直接引用传入的char[]数组,而是会复制一份,所以,修改外部的char[]数组不会影响String实例内部的char[]数组,因为这是两个不同的数组。
//如果传入的对象有可能改变,我们需要复制而不是直接引用,需要修改构造器,复制一份Arrays.copyOf(OriginalScore, OriginalScore.length);
byte[] b1 = "Hello".getBytes(); // 按系统默认编码转换,不推荐
byte[] b2 = "Hello".getBytes("UTF-8"); // 按UTF-8编码转换
byte[] b2 = "Hello".getBytes("GBK"); // 按GBK编码转换
byte[] b3 = "Hello".getBytes(StandardCharsets.UTF_8); // 按UTF-8编码转换
byte[] b = ...
String s1 = new String(b, "GBK"); // 按GBK转换
String s2 = new String(b, StandardCharsets.UTF_8); // 按UTF-8转换
java学习-4-核心类:字符串的更多相关文章
- Java学习_Java核心类
字符串和编码 字符串在String内部是通过一个char[]数组表示的,因此,可以按下面的写法: String s2 = new String(new char[] {'H', 'e', 'l', ' ...
- Java学习:File类
Java学习:File类 File类的概述 重点:记住这三个单词 绝对路径和相对路径 File类的构造方法 File类判断功能的方法 File类创建删除功能的方法 File类获取(文件夹)目录和文件夹 ...
- java学习一目了然——File类文件处理
java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) F ...
- Java学习笔记——File类之文件管理和读写操作、下载图片
Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...
- Java学习笔记之---类和对象
Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态 例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...
- Java学习:Properties类
Java学习:Properties类 学习目标 认识properties文件,理解其含义,会正确创建properties文件. 会使用java.util.Properties类来操作propertie ...
- U3D学习004——核心类和代码运行
1.U3D核心类 2.变量 只有public变量才可以显示在inspector面板中,[serializeField]可以使private和protected变量显示在inspector面板中. 3. ...
- Lucene学习入门——核心类API
本文讲解Lucene中,创建索引.搜索等常用到的类API 搜索操作比索引操作重要的多,因为索引文件只被创建一次,却要被搜索多次. 索引过程的核心类: 执行简单的索引过程需要如下几个类:IndexWri ...
- Java学习笔记——SequenceInputStream类合并文件的综合举例分析
SequenceInputStream 介绍 SequenceInputStream 类表示其他输入流的逻辑串联,即文件的合并. 它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾, ...
- Java学习笔记-File类的基本方法
要渐渐养成写博客的习惯-----> 前段时间看Mars的java中的I/O流没怎么懂,发现I/O流好难啊.今天重新看一遍其他教学,还有书籍,做些笔记,记录下每天的学习生活. File类的一些方法 ...
随机推荐
- smart_web 管理端基本说明
smart_web 操作手册 1. smart_web 是什么? smart_web 是 smart_rtmpd 的付费版本,拥有比免费版本更多的功能支持,基于 web 的管理方式,让您随时随地在大部 ...
- MYSQL查询7天内、7月内的所有日期
select DATE_SUB(CURDATE(), INTERVAL 6 DAY) ; SELECT date_add( date_sub( ( SELECT DATE_SUB( curdate( ...
- e-prime3安装
e-prime2.0版本太老,现在安装尝试3.0. 下载 链接: https://pan.baidu.com/s/1XJFDqhoArpIwEf0NpKvoIQ 提取码: h5xk 安装 解压安装包后 ...
- 从零开始构建一个gradle工程
gradle init --type java-application 首先,确保您已经安装了Java和Gradle.您可以从官方网站下载并按照说明进行安装. 创建一个新的项目文件夹,并进入该文件夹. ...
- 问一下,利用在线 DeepSeek 等 API 服务实现一个答题 APP
简介 这是一个利用 Android 无障碍功能 + 悬浮窗 + 大模型的搜题应用 原理就是利用无障碍读取屏幕内容,然后通过悬浮窗来显示答案 众所周知我是一个学渣,所以在搜答案方面颇有成就 大概是在 4 ...
- mac安装python包
一.常用包安装记录1.分析exl用的pandas pip install xlrd==1.2.0 pip3 install pandas
- go测试跨包代码覆盖率
Golang虽然只是一门编程语言,但也为我们提供了不少工具,其中测试工具是最常用的,大概 前提概要 以前看书,只说了用什么工具去做覆盖率,和基本的使用,当时看了也没想太多.后面真正做项目了,老大要求比 ...
- Windows11 + VmWare16 + CentOS-7-x86_64-Minimal-1708.iso 安装
准备环境 电脑环境: VmWare16环境 镜像文件: 开始教程 ①点击新建虚拟机: ②选择第二个.点击下一步 ③根据上面默认即可.点击下一步 ④选择稍后安装操作系统.点击下一步 ⑤选择Linux.C ...
- 傻妞教程——对接QQ机器人go-cqhttp
原本我懒,用的傻妞QQbot一键安装版,docker的,最近有点问题,索性换了go-cqhttp 安装go-cqhttp: go-cqhttp项目地址:https://github.com/Mrs4s ...
- docker - [06] 安装部署Tomcat
题记部分 一.官方测试镜像 官方文档给出以下命令,一般用来测试,用完即删,下载并运行镜像,退出镜像就会自动删除镜像?亲测不会自动删除 docker run -it --rm tomcat:9.0 使用 ...