Java String类
String htmlString =
"<!DOCTYPE html>\n" +
"<html>\n" +
" <body>\n" +
" <h1>\"Hello World!\"</h1>\n" +
" </body>\n" +
"</html>\n";
System.out.println(htmlString); 字符串截取案例// linux /usr/local/jdk/
//windows d:\\jdk\\jdk-17
String file = "c:/user/abc/upload/xxsfasf.afasf-asfas.jpg";
//求出文件目录 c:/user/abc/upload/
//求出文件名称 xxsfasf.afasf-asfas.jpg
//求出文件的扩展名 jpg
//将字符串替换为c:/user/abc/upload/20211202154333.jpgjava11 字符串新特性方法package cn.ex;
import java.io.File;
import java.util.UUID;
/**
* @author webrx
* @since 17
*/
public class Ex2 {
public static void main(String[] args) {
String p = "d:/xxx/user/user_abc.jpg";
System.out.println(p);
//File.separator 是根据系统返回相关的符号 linux / windows \ \\
String fc = File.separator;
fc = p.indexOf(fc) == -1 ? "/" : fc;
System.out.println(fc);
String path = p.substring(0, p.lastIndexOf(fc)).concat(fc);
System.out.println(path);
String name = p.substring(p.lastIndexOf(fc) + 1);
System.out.println(name);
String ext = name.lastIndexOf(".") == -1 ? "" :
name.substring(name.lastIndexOf(".") + 1);
System.out.println(ext);
UUID uuid = UUID.randomUUID();
String newp = String.format("%s%s.%s", path, uuid, ext);
System.out.println(newp);
}
} java 11 string api// 判断字符串是否为空白
" ".isBlank(); // true
// 去除首尾空格 .trim()
" Javastack ".strip(); // "Javastack"
// 去除尾部空格
" Javastack ".stripTrailing(); // " Javastack"
// 去除首部空格
" Javastack ".stripLeading(); // "Javastack "
// 复制字符串
"Java".repeat(3); // "JavaJavaJava"
// 行数统计
"A\nB\nC".lines().count(); // 3
String str = "Java";
// 小于0:java.lang.IllegalArgumentException
System.out.println(str.repeat(-2));
// 等于0:空白串("")
System.out.println(str.repeat(0));
// JavaJavaJava
System.out.println(str.repeat(3));
// java.lang.OutOfMemoryError
System.out.println(str.repeat(Integer.MAX_VALUE));
// 4
System.out.println("A\nB\nC\rD".lines().count());
String s1 = " hello java 1.8 ";
System.out.println(s1);
//.concat() 方法相当于 + 属性字符串连接
System.out.println("hello".concat("\s".repeat(30)).concat("java19"));
System.out.println("hello" + "\s".repeat(30) + "java19");
//清除首尾连续空格
System.out.println(s1.trim());
System.out.println(s1.strip());
System.out.println(s1.stripLeading());
System.out.println(s1.stripTrailing());
//清除所有空格
System.out.println(s1.replace(" ",""));System.out.println("------------");
System.out.println("".isBlank());
System.out.println("".isEmpty());
System.out.println(" ".isBlank());//true
System.out.println(" ".isEmpty());//false
System.out.println(" ".trim().length() == 0 ? "空字符串" : "正确");
System.out.println(" ".isBlank() ? "空字符串" : "正确");
System.out.println("*".repeat(60));
System.out.println("------------");
//求字符串中行数
System.out.println("hello\njava\nok\n123\nmysql");
System.out.println("hello\njava\nok\n123\nmysql".lines().count()); 判断一个对象是否属于一个类可以用关键字instanceof,它是二元操作符,格式为:
对象 instanceof 类名
式子的值为一个布尔值(boolean)Object sth;
boolean isString = sth instanceof String;或者if (sth instanceof String) {
// your code
}字符串添加方法
序
号
方法描述
1 public StringBuffer append(String s) 将指定的字符串追加到此字符序列。
2 public StringBuffer reverse() 将此字符序列用其反转形式取代。
3 public StringBuilder delete(int start, int end) 移除此序列的子字符串中的字符。
4 public insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中。
5 insert(int offset, String str) 将 str 参数的字符串插入此序列中。
6 replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串
中的字符。1 int capacity() 返回当前容量。
2 char charAt(int index) 返回此序列中指定索引处的 char 值。
3 void ensureCapacity(int minimumCapacity) 确保容量至少等于指定的最小值。
4
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 将字符从此序列复制到目
标字符数组 dst 。
5 int indexOf(String str) 返回第一次出现的指定子字符串在该字符串中的索引。
6
int indexOf(String str, int fromIndex) 从指定的索引处开始,返回第一次出现的指定子字符
串在该字符串中的索引。
7 int lastIndexOf(String str) 返回最右边出现的指定子字符串在此字符串中的索引。
8 int lastIndexOf(String str, int fromIndex) 返回 String 对象中子字符串最后出现的位置。
9 int length() 返回长度(字符数)。
10 void setCharAt(int index, char ch) 将给定索引处的字符设置为 ch 。
11 void setLength(int newLength) 设置字符序列的长度。
12
CharSequence subSequence(int start, int end) 返回一个新的字符序列,该字符序列是此
序列的子序列。
13
String substring(int start) 返回一个新的 String ,它包含此字符序列当前所包含的字符子
序列。
14
String substring(int start, int end) 返回一个新的 String ,它包含此序列当前所包含的字
符子序列。
15 String toString() 返回此序列中数据的字符串表示形式。 相关文章:
Java String类
字符串转义符号为 \ 常见的转义字符 转移字符对应的英文是 escape character , 转义字符串( Escape Sequence ) 字母前面加上捺斜线 "" 来表示常见的那些不能显示的 ASCII 字符 . 称为转义字符 . 如 \0,\t,\n 等,就称为转 义字…...
我的电子萝卜刀火了吗?
引言 大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。 笔者在上一篇文章《萝卜刀真的太危险了,于是我用Cocos做了一个》中说到因女儿从学校回来之后想要我给她买一把萝卜刀被我拒绝,但是又想要让她体验一下,因此用Cocos…...
git 查看本地秘钥
第一步: 1,打开终端或者命令行窗口,输入一下命令: cd ~/.ssh进入ssh目录 2,查看该目录下的所有文件,输入以下命令: ls -al该命令将显示ssh目录下的所有文件,包括秘钥文件和配置文件,如果不存…...
【TensorFlow1.X】系列学习笔记【入门二】
【TensorFlow1.X】系列学习笔记【入门二】 大量经典论文的算法均采用 TF 1.x 实现, 为了阅读方便, 同时加深对实现细节的理解, 需要 TF 1.x 的知识 文章目录 【TensorFlow1.X】系列学习笔记【入门二】前言神经网络的参数神经网络的搭建前向传播反向传播 总结 前言 学习了张量、…...
详解一下HTML的语义化标签
目录 什么是语义化标签: HTML5的语义化元素的优点: HTML5的语义化元素的缺点: 来个例子: 语义化标签有那些: 什么是语义化标签: 语义化标签是HTML的一种特性,其核心目标是让标签具有特定的意义。它们的存在不仅帮助开发者更好地理解文档的结构,也让…...
C++11的for循环
在C03/98中,不同的容器和数组,遍历的方法不尽相同,写法不统一,也不够简洁,而C11基于范围的for循环以统一,简洁的方式来遍历容器和数组,用起来更方便了。 for循环的新用法 #include <iostre…...
代码随想录算法训练营第六十天| 739. 每日温度、 496.下一个更大元素 I
代码随想录算法训练营第六十天| 739. 每日温度、 496.下一个更大元素 I 739. 每日温度496.下一个更大元素 I 今天的题都能看懂,做了一个小时 739. 每日温度 题目链接:739. 每日温度 文章链接 状态:看视频能看懂,还是要多练。 代码…...
13.3测试用例进阶
一.测试对象划分 1.界面测试(参考软件规格说明书和UI视觉稿) a.什么是界面 1)WEB站(浏览器) 2)app 3)小程序 4)公众号 b.测试内容 1)界面内容显示的一致性,完整性,准确性,友好性.比如界面内容对屏幕大小的自适应,换行,内容是否全部清晰展示. 2)验证整个界面布局和排版…...
[云原生1] Docker网络模式的详细介绍
1. Docker 网络 1.1 Docker 网络实现原理 Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0), Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP, 同时Docker网桥是每个容器的默认…...
uni——底部弹框显示,底部导航隐藏
案例 在uni-app中,如果你在tabbar页面显示一个底部弹框,底部导航默认是会依旧显示的。如果你想在弹框显示时隐藏底部导航,你可以使用uni.hideTabBar和uni.showTabBar方法来控制底部导航的显示和隐藏。 export default {methods: {openPopup(…...
HammerDB的安装和使用(超详细)
目录 编辑 一、HammerDB的介绍 二、HammerDB的安装 1、下载hammerdb安装包 2、权限配置以及安装 3、查看安装目录 三、安装前的配置 1、启动监听 2、启动数据库 3、创建表空间 1.修改临时表空间 2…...
java经典面试题总结
1.请简述Java的继承,重写和多态的概念和运用 继承是一种Java中重要的面向对象编程方式,它允许一个类从另一个类继承某些属性和方法,在这种关系下,子类可以重写父类的方法,从而实现不同的行为。 多态是继承实现的一种关…...
django中template中post请求接口csrf问题
$(function () {$.ajaxSetup({headers: { "X-CSRFToken": getCookie("csrftoken") }}); });// 为防止CSRF(Cross-site request forgery)跨站请求伪造,发post请求时需要在cookie中创建随机码 function getCookie(name) {v…...
聊聊RocketMQMessageListener的实现机制
序 本文主要研究一下RocketMQMessageListener的实现机制 示例 Service RocketMQMessageListener(nameServer "${demo.rocketmq.myNameServer}", topic "${demo.rocketmq.topic.user}", consumerGroup "user_consumer") public class UserC…...
ConfigurationProperties注解详解
ConfigurationProperties和Value注解用于获取配置文件中的属性定义并绑定到Java Bean或属性中 一个简单的例子 ConfigurationProperties需要和Configuration配合使用,我们通常在一个POJO里面进行配置: Data Configuration ConfigurationProperties(pre…...
三、组件与数据交互
一、组件基础 1、单文件组件 第一步:引入组件 import ComponentTest from ./components/ComponentTest.vue 第二步:挂载组件 components: {ComponentTest } 第三步:显示组件 <ComponentTest></ComponentTest><!-- 父组件 --…...
#define 宏定义看这一篇文章就够了
前言:在c/c学习的过程中,宏定义(#define)是作为初学者学习到的为数不多的预处理指令,在学习的时候我们被告知他可以帮助我们更高效的写程序,可以增加程序的可读性,但宏定义(#define&…...
LeetCode算法栈—验证图书取出顺序
验证图书取出顺序 目录 验证图书取出顺序 题解: 代码: 运行结果: 验证图书取出顺序 现在图书馆有一堆图书需要放入书架,并且图书馆的书架是一种特殊的数据结构,只能按照 一定 的顺序 放入 和 拿取 书籍。 给定一个…...
PAM从入门到精通(十八)
接前一篇文章:PAM从入门到精通(十七) 本文参考: 《The Linux-PAM Application Developers Guide》 PAM 的应用开发和内部实现源码分析 先再来重温一下PAM系统架构: 更加形象的形式: 六、整体流程示例 2.…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
