String类中常见面试题

1.string类属于基本类型吗?

string类不是基本类型;它属于引用数据类型

2.操作字符串的类有哪些?有什么区别?

 有三种:string,stringBuilder,stringBuffer

区别:

String:不可变类,字符串一旦被创建就不能被修改,只能被覆盖

stringBuiler:可变类;非线程安全

stringBuffer:可变类;线程安全

3.string中常用的api有哪些?

1. **length():** 返回字符串的长度。
   String str = "Hello, World!";
   int length = str.length(); // length = 13

2. **charAt(int index):** 返回指定索引处的字符。
   String str = "Hello";
   char ch = str.charAt(0); // ch = 'H'

3. **substring(int beginIndex) 和 substring(int beginIndex, int endIndex):** 返回从指定索引开始到结束的子字符串。
   String str = "Hello, World!";
   String substr1 = str.substring(7); // substr1 = "World!"
   String substr2 = str.substring(0, 5); // substr2 = "Hello"

4. **indexOf(String str) 和 lastIndexOf(String str):** 返回指定子字符串第一次出现的索引或最后一次出现的索引。
   String str = "Hello, World!";
   int index1 = str.indexOf("o"); // index1 = 4
   int index2 = str.lastIndexOf("o"); // index2 = 8

5. **toUpperCase() 和 toLowerCase():** 将字符串转换为大写或小写。
   String str = "Hello, World!";
   String upperCase = str.toUpperCase(); // upperCase = "HELLO, WORLD!"
   String lowerCase = str.toLowerCase(); // lowerCase = "hello, world!"

6. **replace(char oldChar, char newChar) 和 replace(CharSequence target, CharSequence replacement):** 替换字符或字符串。
   String str = "Hello, World!";
   String replaced1 = str.replace('o', 'x'); // replaced1 = "Hellx, Wxrld!"
   String replaced2 = str.replace("World", "Java"); // replaced2 = "Hello, Java!"

7. **startsWith(String prefix) 和 endsWith(String suffix):** 检查字符串是否以指定的前缀或后缀开始或结束。
   String str = "Hello, World!";
   boolean startsWith = str.startsWith("Hello"); // startsWith = true
   boolean endsWith = str.endsWith("World!"); // endsWith = true

8. **split(String regex):** 根据给定的正则表达式拆分字符串。
   String str = "apple,banana,orange";   String[] fruits = str.split(","); // fruits = ["apple", "banana", "orange"

9.trim()方法:用于去除字符串的空格

10.比如说 valueOf() 用于将其他类型的数据转换为字符串。

String s = String.valueOf(133);

11.toCharArray():将字符串转换为对应的字符数组;

4.string对象是不可变的吗?为什么?有什么优点?

结合源码分析:

String类被final修饰:该类不能被继承,就是不能自定义String的子类;

成员变量value被final修饰:字符串就是以字符的形式存储在这个数组中该变量一旦被赋值后就不能指向其他的对象;但是对象的内容可变;

还有就是:String这个类没有对外提供对应的修改其属性value的方法;

优点:

-----安全可靠:字符串使用的还是相当频繁的;特别是存储一些用户的密码等敏感信息;不可变保证其校验通过后就不能在程序中修改后;

-----线程安全:不存在并发修改同一个对象的问题;

2.提高性能:

-----因为字符串的不可变性,计算出字符串的哈希值后,就可以把它缓存起来后续继续使用

-----字符串常量池的应用:定义一个字符串后就会被放在常量池中,可以方便复用;

5.string怎么转list?list怎么转string?

将String转为list;

public class Main {public static void main(String[] args) {String str = "Hello World";// 创建一个空列表List<Character> charList = new ArrayList<>();// 将字符串转换为列表for (char c : str.toCharArray()) {charList.add(c);}System.out.println("List from String: " + charList);}}

将list转为String:

public class Main {public static void main(String[] args) {List<Character> charList = List.of('H', 'e', 'l', 'l', 'o');// 使用StringBuilder将字符列表转换为字符串StringBuilder sb = new StringBuilder();for (char c : charList) {sb.append(c);}String str = sb.toString();System.out.println("String from List: " + str);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/814086.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity打包出来的apk安装时提示应用程式与手机不兼容,无法安装应用程式

1、遇到的问题 * 2、解决办法 这是因为你在Unity中导出来的apk手机安装包是32位的&#xff0c;才导致上述问题发生&#xff0c;要解决这个办法&#xff0c;需要在Unity中导出64位的手机安装包。 32位跟64位的区别&#xff0c;以及如何区分打出来的手机安装包是否是32位或者是…

腐蚀Rust 服务端搭建架设个人社区服务器Windows教程

腐蚀Rust 服务端搭建架设个人社区服务器Windows教程 大家好我是艾西&#xff0c;一个做服务器租用的网络架构师也是游戏热爱者。最近在steam发现rust腐蚀自建的服务器以及玩家还是非常多的&#xff0c;那么作为服务器供应商对这商机肯定是不会放过的哈哈哈&#xff01; 艾西这…

Day:004(4) | Python爬虫:高效数据抓取的编程技术(数据解析)

XPath工具 浏览器-元素-CtrlF 浏览器-控制台- $x(表达式) Xpath helper (安装包需要科学上网) 问题 使用离线安装包 出现 程序包无效 解决方案 使用修改安装包的后缀名为 rar&#xff0c;解压文件到一个文件夹&#xff0c;再用 加载文件夹的方式安装即可 安装 python若使用…

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现&#xff1a; 2023 年开年&#xff0c;ChatGPT 作为一款聊天型 AI 工具&#xff0c;成为了超越疫情的热门词条&#xff1b;而在 AI 的另一个分支——绘图领域&#xff0c;一款名为 Midjourney&#xff08;MJ&…

2024年认证杯数学建模挑战赛C题全解析

2024年认证杯C题的已经完成啦&#xff0c;包括参考论文&#xff0c;模型代码&#xff0c;分享给大家&#xff5e; 问题分析 对于这些问题&#xff0c;我们首先需要确定影响日光辐射降低效应的关键参数&#xff0c;例如海盐气溶胶的浓度、粒子大小、分布以及喷洒高度和范围。同…

再写-全景拼接

全景拼接 1. 将读取进行灰度转化&#xff0c;并且输出图像&#xff0c;关键点和计算描述 import cv2 import numpy as np# 将读取进行灰度转化&#xff0c;并且输出图像&#xff0c;关键点和计算描述 image_left cv2.imread("C:\\Users\\HONOR\\Desktop\\image\\pinjie…

机器人坐标系转换之从世界坐标系到局部坐标系

三角函数实现 下面是代码c和python实现&#xff1a; #include <iostream> #include <cmath>struct Point {double x;double y; };class RobotCoordinateTransform { private:Point origin; // 局部坐标系的原点在世界坐标系中的坐标public:RobotCoordinateTransfo…

【深度学习】图像风格混合——StyleGAN2原理解析

1、前言 上一篇文章&#xff0c;我们详细讲解了StyleGAN的原理。这篇文章&#xff0c;我们就来讲解一下StyleGAN2&#xff0c;也就是StyleGAN的改进版。 原论文&#xff1a;Analyzing and Improving the Image Quality of StyleGAN 参考代码&#xff1a;①Pytorch版本&#…

【Godot4.2】CanvasItem绘图函数全解析 - 7.自定义节点TextBoard

概述 之前发布的几篇文章几乎阐述了CanvasItem绘图函数最基础的内容。 本篇结合draw_style_box()和TextParagraph类&#xff0c;自定义了一个可以自适应宽高显示多行文本&#xff0c;且带有一个样式盒作为背景的文字板节点TextBoard。 系列目录 0.概述1.绘制简单图形2.设定绘…

SPP论文笔记

这篇论文讨论了在深度卷积网络中引入空间金字塔池化&#xff08;SPP&#xff09;层的方法&#xff0c;以解决传统深度卷积网络需要固定图像尺寸的限制。以下是论文各部分的总结&#xff1a; 1. 引言 论文指出现有的深度卷积神经网络&#xff08;CNN&#xff09;需要固定大小的…

全景剖析SSD SLC Cache缓存设计原理-2

四、SLC缓存对SSD的寿命是否有优化&#xff1f; 当使用QLC或TLC NAND闪存并将其切换到SLC模式进行写入时&#xff0c;会对闪存的寿命产生以下影响&#xff1a; 短期寿命提升&#xff1a; SLC模式下&#xff0c;每个存储单元仅存储一个比特数据&#xff0c;相对于QLC或TLC来说…

前端vue: 使用ElementUI适配国际化

i18n介绍 i18n&#xff08;其来源是英文单词 internationalization的首末字符i和n&#xff0c;18为中间的字符数&#xff09;是“国际化”的简称。 前端国际化步骤 1、安装i18n插件 安装插件时候&#xff0c;注意必须指定版本号&#xff0c;不然安装会报错。 npm i vue-i1…

linux 部署安装mongodb教程

现在去官网下载mongodb的tar包,在本地创建文件夹 cd /home wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.17.tgz tar -zxvf mongodb-linux-x86_64-rhel70-4.2.17.tgz mv mongodb-linux-x86_64-rhel70-4.2.17 mongodb cd /home/mongodb mkdir log t…

GAN:对抗式生成网络之图片生成

对抗式生成网络(Adversarial Generative Network, AGN)这一术语在您提供的信息中并未直接出现。通常,在深度学习文献和实践中,与“对抗”和“生成”概念相结合的网络架构指的是生成式对抗网络(Generative Adversarial Networks, GANs)。GANs由Ian Goodfellow等人于2014年…

数据结构之单链表相关刷题

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构 数据结构之单链表的相关知识点及应用-CSDN博客 下面题目基于上面这篇文章&#xff1a; 下面有任何不懂的地方欢迎在评论区留言或…

wangeditor与deaftjs的停止维护,2024编辑器该如何做技术选型(一)

wangeditor暂停维护的声明&#xff1a; wangeditor是国内开发者开发的编辑器&#xff0c;用户也挺多&#xff0c;但是由于作者时间关系&#xff0c;暂停维护。 deaft的弃坑的声明&#xff1a; draft是Facebook开源的&#xff0c;但是也弃坑了&#xff0c;说明设计的时候存在很大…

LeetCode最长有效括号问题解

给定一个仅包含字符的字符串(’ 和 ‘)’&#xff0c;返回最长有效的长度(出色地-形成) 括号子弦。 示例1&#xff1a; 输入&#xff1a;s “(()” 输出&#xff1a;2 说明&#xff1a;最长的有效括号子字符串是 “()” 。 示例2&#xff1a; 输入&#xff1a;s “)()())…

在Linux上利用mingw-w64生成exe文件

一、概要 1、elf与exe 在Linux上用gcc直接编译出来的可执行文件是elf格式的&#xff0c;在Windows上是不能运行的 Windows上可执行文件的格式是exe 利用mingw-w64可以在Linux上生成exe格式的可执行文件&#xff0c;将该exe文件拷贝到Windows上就可以运行 2、程序要留给用户…

体验Humane AI:我与可穿戴AI别针的生活

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

如何使用 ArcGIS Pro 制作热力图

热力图是一种用颜色表示数据密度的地图&#xff0c;通常用来显示空间分布数据的热度或密度&#xff0c;我们可以通过 ArcGIS Pro 来制作热力图&#xff0c;这里为大家介绍一下制作的方法&#xff0c;希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的POI数…