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

java面试题:简化URL

1 问题场景

编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。

注意:字符串长度在 [0, 500000] 范围内。

2 答案

2.1 解决方案一

直接使用String方法解决

    public static String replaceSpaces(String S, int length) {if(S.length()>500000||S.length()<0){return "字符长度超出合理范围";}S = S.substring(0,length).replace(" ","%20");return S;}

进行测试:

package com.example.demo;public class Solution {public static void main(String[] args) {System.out.println(replaceSpaces("               ",5));}public static String replaceSpaces(String S, int length) {if(S.length()>500000||S.length()<0){return "字符长度超出合理范围";}S = S.substring(0,length).replace(" ","%20");return S;}}

2.2 解决方案二

package com.example.demo;public class Solution {public static void main(String[] args) {System.out.println(replaceSpaces("               ",5));}public static String replaceSpaces(String S, int trueLength) {if(S.length()>500000||S.length()<0){return "字符长度超出合理范围";}char[] str = S.toCharArray();int spaceCount = 0, index, i = 0;// 计算空格的数量for (i = 0; i < trueLength; i++) {if (str[i] == ' ') {spaceCount++;}}// 计算替换后的字符串长度index = trueLength + spaceCount * 2;// 计算替换后的字符串长度index = trueLength + spaceCount * 2;// 从后向前操作,进行替换if (trueLength < str.length) str[trueLength] = '\0'; // 标记实际结束位置for (i = trueLength - 1; i >= 0; i--) {if (str[i] == ' ') {str[index - 1] = '0';str[index - 2] = '2';str[index - 3] = '%';index = index - 3;} else {str[index - 1] = str[i];index--;}}return new String(str);}}

相关文章:

java面试题:简化URL

1 问题场景 编写一种方法&#xff0c;将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符&#xff0c;并且知道字符串的“真实”长度。 注意&#xff1a;字符串长度在 [0, 500000] 范围内。 2 答案 2.1 解决方案一 直接使用String方法解决 public s…...

用 echarts 开发地图、点击展示自定义信息框

1、下载所需地市的json 链接&#xff1a;DataV.GeoAtlas地理小工具系列 在右侧输入需要的名称&#xff0c;然后下载json文件到本地 2、在html 中准备容器&#xff0c;并设置宽高 <div id"mapContent"> <div ref"mapChart" style"width:10…...

Android 应用兼容性变更调试

引言 本文将介绍如何调试和解决这些兼容性问题,并记录调试过程中实际操作的步骤和方法。在Android应用开发中,随着Android系统版本的不断更新,应用的兼容性问题变得越来越复杂。 推荐:《Android系统开发中高级定制专栏导读》08-03 16:04:53.518 6555 6555 D Compatibili…...

76 多态

多态&#xff08;polymorphism&#xff09;是指基类的同一个方法在不同派生类对象中具有不同的表现和行为。 派生类继承了基类的行为和属性之后&#xff0c;还会增加某些特定的行为和属性&#xff0c;同时还可能会对继承来的某些行为进行一定的改变&#xff0c;这都是多态的表现…...

数据采集工具之Canal

本文主要介绍canal采集mysql数据的tcp、datahub(kafka)模式如何实现 1、下载canal https://aliyun-datahub.oss-cn-hangzhou.aliyuncs.com/tools/canal.deployer-1.1.5-SNAPSHOT.tar.gz canal的原理类似于mysql的主从复制&#xff0c;canal模拟的是从节点拉取主节点的binlog数…...

【后端】消息中间件小册

1.RabbitMQ RabbitMQ 是一个流行的消息中间件系统&#xff0c;采用 AMQP&#xff08;高级消息队列协议&#xff09;来管理消息的传递。它的工作原理涉及多个组件和机制来确保消息的可靠性和完整性。以下是 RabbitMQ 的基本工作原理以及如何保证消息不丢失的机制&#xff1a; R…...

【进阶篇-Day14:JAVA中IO流之转换流、序列化流、打印流、Properties集合的介绍】

目录 1、转换流1.1 转换流分类&#xff1a;1.2 转换流的作用&#xff08;1&#xff09;按照指定的字符编码读写操作&#xff1a;&#xff08;2&#xff09;将字节流转换为字符流进行操作&#xff1a; 2、序列化流2.1 序列化的基本使用&#xff1a;2.2 序列化的操作流程&#xf…...

【Material-UI】Checkbox 组件中的 Label Placement 设置详解

文章目录 一、Checkbox 组件简介1. 组件概述2. labelPlacement 属性 二、labelPlacement 属性的使用方法三、各标签位置的效果与应用场景1. Top&#xff08;顶部&#xff09;2. Start&#xff08;左侧&#xff09;3. Bottom&#xff08;底部&#xff09;4. End&#xff08;右侧…...

XJTUSE-离散数学-集合

基本概念 集合的包含与相等&#xff0c;如子集幂集&#xff1a;以A的所有子集组成的集合称为A的幂集AB <> 集合的基本运算 基本运算证明会考 交运算并运算补运算差运算&#xff1a;A \ B 环和运算&#xff1a;环积运算&#xff1a; 集合的其他表示方法 文图表示法 …...

安徽省消防设施操作员题库

1.()是做人的基本准则&#xff0c;也是社会道德和职业道德的一项基本规范。 A.诚实守信(正确答案) B.爱岗敬业 C.以人为本 D.钻研业务 2.()是指为了追求完美&#xff0c;坚持工匠精神&#xff0c;在工作中不放松对自己的要求。 A.爱岗敬业 B.精益求精(正确答案) C.勤奋刻苦 D.专…...

Singularity容器安装与使用

Singularity容器技术 docker的缺点: 资源限制问题:Slurm利用cgroups实现资源分配&#xff0c;Docker通过ocker daemon无法实现。 权限问题:Docker daemon使用 root用户启动&#xff0c;HPC场录期望使用普通用户运行容器。 singuiarily主要是适合HPC中的普通用户&#xff0c;…...

Linux 文件、重定向、缓冲区

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a; Linux 目录 一、文件 1、文件的理解&#xff08;浅层&#xff09; 1.文件是什么&#xff1f; 2.文件操作的前提 3.文件的存储 4.一个进程可以打开多个文件吗&#xff1f;如果可以怎么管理的&#xf…...

WEB漏洞-SQL注入之MYSQL注入

跨库注入的原理&#xff1a;针对同一IP下的不同域名 同一服务器下 网站A对应数据库A 网站B对应数据库B 网站C对应数据库C 如果某网站的存在注入点&#xff0c;注入点的权限恰好是root权限&#xff0c;也就是最高权限&#xff0c;那么可以通过跨库注入获取其他网站的数据库…...

mysql 查询 from a, b 和 a left join b 有什么区别

在MySQL中&#xff0c;from a, b 和 a left join b 有显著的区别&#xff0c;主要体现在查询结果和使用场景上。 基本语法与返回结果&#xff1a; from a, b&#xff1a;这种写法实际上是将两个表作为一个整体来处理&#xff0c;即假设这两个表是同一个表。因此&#xff0c;它…...

禁用ssh 22端口

在Linux系统中&#xff0c;要关闭SSH端口&#xff0c;可以通过修改SSH配置文件或防火墙规则来实现。 方法一&#xff1a;修改SSH配置文件 1. 使用root用户登录Linux系统。 2. 打开SSH配置文件&#xff0c;可以使用任何文本编辑器&#xff0c;如vi或nano。在大多数Linux发行版上…...

C++基础编程的学习3

nullptr关键字 在C11之前&#xff0c;空指针通常用NULL或0表示。然而&#xff0c;这些表示方法存在类型安全问题。C11引入了nullptr关键字&#xff0c;它提供了一个明确的、类型安全的空指针值。 Lambda表达式 Lambda表达式是C11引入的一种便捷的匿名函数定义方式。当Lambda…...

Java中的Optional类:解锁优雅编程的秘密

引言 在Java开发的世界里&#xff0c;空指针异常&#xff08;NullPointerException&#xff09;一直是让无数程序员头疼的问题之一。它不仅打断了程序的正常执行流程&#xff0c;还可能隐藏在复杂的业务逻辑之中&#xff0c;难以定位。自Java 8起&#xff0c;一个新的类——Op…...

聆思CSK6大模型开发板语音控制风扇(上)

前言 本文介绍如何实现大模型语音交互对风扇实现开关控制&#xff0c;示例使用的硬件是聆思CSK6大模型开发板&#xff0c;大模型接的是星火大模型。本文将先详细介绍大模型云端从获取交互语音到下发控制指令的全过程&#xff0c;包括整合上下文、配置提示词、语义意图分类、提取…...

代码随想录算法训练营第四十一天 | 121. 买卖股票的最佳时机、122. 买卖股票的最佳时机II、123. 买卖股票的最佳时机III

一、121. 买卖股票的最佳时机 题目链接&#xff1a;121. 买卖股票的最佳时机 - 力扣&#xff08;LeetCode&#xff09; 文章讲解&#xff1a;代码随想录 (programmercarl.com)——121. 买卖股票的最佳时机 视频讲解&#xff1a;动态规划之 LeetCode&#xff1a;121.买卖股票的最…...

延时队列与redis and rabbitmq

延时队列是什么 延时队列&#xff08;Delay Queue&#xff09;是一种特殊的消息队列&#xff0c;它允许你在添加消息时设置一个延时时间&#xff0c;消息只有在延时时间到达后才能被消费。这种机制在分布式系统中非常有用&#xff0c;常用于处理需要在指定时间后执行的任务&am…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...