【java】String类常见操作
秋招做题需要,总结String类常用api如下:
简单的:str.length()、str.isEmpty()、str.split(“;”)切割
1.字符串反转:借助StringBuilder/StringBuffer,(常用StringBuilder类,因为快)
// 字符串反转
public static String reverseString(String str) {
StringBuffer sBuffer = new StringBuffer(str);
String string = sBuffer.reverse().toString();
return string;
}
2.截取字符串:substring()方法
substring(int beginIndex, int endIndex)
第一个int为开始的索引,对应String数字中的开始位置,第二个是截止的索引位置,对应String中的结束位置
从beginIndex开始取,到endIndex结束,下标从0开始,取出的字符串不包括endIndex位置的字符
public static void main(String[] args) {
String str = "abcdefgh";
//substring(int beginIndex, int endIndex)
//从beginIndex开始取,到endIndex结束,不包括endIndex位置的字符
String res = str.substring(1, 3);
System.out.println(res);
}
输出:bc
3.删除字符串中的前几个数据:substring()方法【也就是保留某个数据以后的数据】
public static void main(String[] args) {
String str1 = "abcdefghqwertyui";
//取索引为8往后的字符串(包含索引为8的字符)
//也就是删除索引0-7的前8个数据
String res1 = str1.substring(8);
System.out.println(res1);
}
输出:
qwertyui
4.截取字符串的后几位:substring()方法
public static void main(String[] args) {
String str1 = "abcdefghqwertyui";
//取出最后两位
String res1 = str1.substring(str1.length()-2);
System.out.println(res1);
}
输出:
ui
5.遍历字符串中的每一个字符:charAt()方法、toCharArray()方法 感觉两种方法差别不大,习惯其中一个方法就行
(1)charAt()方法返回指定索引位置的char值
把遍历出来的char拼成一个新的字符串
public static void main(String[] args) {
String str1 = "0123456";
String res = "";
for (int i = 0; i < str1.length(); i++) {
char everyWord = str1.charAt(i);
//当想要某一些不连续的字符拼成新的字符串的时候:
//需要用到--把取出的char拼成字符串
if(i%2==0) {
res = res +everyWord;
}
}
System.out.println(res);
}
输出
0246
(2)toCharArray()方法
toCharArray()方法:将字符串对象中的字符转换为一个字符数组
public static void main(String[] args) {
String str1 = "0123456";
String res = "";
char[] charArray = str1.toCharArray();
for (int i = 0; i < charArray.length; i++) {
if (i % 2 == 0) {
res = res + charArray[i];
}
}
System.out.println(res);
}
输出
0246
6.字符串中是否包含另一个字符串 : indexOf()方法、contains()方法
indexOf()方法:返回要匹配的字符串第一次出现的索引的位置,没出现过返回-1
contains()方法:判断是否包含指定字符串,包含返回true,不包含返回false
lastIndexOf()方法: 要匹配的字符串最后一次出现的索引
public static void main(String[] args) {
String str1 = "0123456";
int firstIndex = str1.indexOf("34");
System.out.println(firstIndex);//字符3的下标
boolean flag = str1.contains("56");
System.out.println(flag);
}
输出
3
true
7.判断两个字符串中的内容是否相同:equals()方法
public static void main(String[] args) {
String str1 = "0123456";
String str2 = "0123456";
boolean flag = str1.equals(str2);
System.out.println(flag);
}
输出
true
equalsIgnoreCase() 判断两个字符串是否是一样的(可以忽略字母大小写)
public static void main(String[] args) {
String str1 = "A0123456";
String str2 = "a0123456";
boolean flag1 = str1.equals(str2);
boolean flag2 = str1.equalsIgnoreCase(str2);
System.out.println(flag1);
System.out.println(flag2);
}
输出
false
true
8.移除字符串的空格:trim()方法
trim()方法:移除字符串两边的空格
public static void main(String[] args) {
String str1 = " A0123456 ";
String str2 = str1.trim();
System.out.println(str2);
}
输出
A0123456
移除任意位置的空格
public static void main(String[] args) {
String str = " 1 2 3 4 5 ";
System.out.println(StringDemo.removeSpace(str));
System.out.println(StringDemo.removeSpace2(str));
}
//自己写一个可以去除字符串任意位置空格的方法
//运用toCharArray()
public static String removeSpace(String str) {
String strRes = "";
char[] charArray = str.toCharArray();
for (char c : charArray) {
if (c!=' ') {
strRes=strRes+c;
}
}
return strRes;
}
//运用charAt()
public static String removeSpace2(String str) {
String strRes = "";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c!=' ') {
strRes=strRes+c;
}
}
return strRes;
}
9.字符串是否以指定字符串开头、结尾:startsWith()、endsWith()
public static void main(String[] args) {
String str = "wsmOffers";
boolean flag1 = str.startsWith("wsm");
boolean flag2 = str.endsWith("Offers");
boolean flag3 = str.endsWith("wsm");
System.out.println(flag1);
System.out.println(flag2);
System.out.println(flag3);
}
输出
true
true
false
10.把该字符串转换成 小写字符串:toLowerCase()、把该字符串转换成 大写字符串:toUpperCase()
public static void main(String[] args) {
String str = "wsmOffers";
String res1 = str.toUpperCase();
String res2 = str.toLowerCase();
System.out.println("res1="+res1);
System.out.println("res2="+res2);
}
输出
res1=WSMOFFERS
res2=wsmoffers
11.把任何类型的数据转换成字符串类型
(1)方法1:前面也用到过,任何类型的数据,拼接一个字符串就会变成字符串
个人感觉这种方法适用于一个字符一个字符的拼接中
public static void main(String[] args) {
String str = "01234";
String res = "";
for (int i = 0; i < str.length()-2; i++) {
char everyWord = str.charAt(i);
//字符串拼接的方法
res = res +everyWord;
}
System.out.println(res);
}
输出
012
(2)方法2:valueOf()
静态类型的方法,直接类名.方法 int--->String
public static void main(String[] args) {
int a = 123;
String res = String.valueOf(a);
System.out.println(res);
}
String--->int
public static void main(String[] args) {
//String--->int
String str = "123";
int num = Integer.valueOf(str);
System.out.println(num);
}
12.补充:把char转换为int类型
public static void main(String[] args) {
String str = "0123";
for (int i = 0; i < str.length(); i++) {
char num = str.charAt(i);
//char转int
int num0101 = (int) num - (int) '0';
System.out.println(num0101);
}
}
13.在该字符串中,将给定的旧字符,用新字符替换、将给定的旧字符串,用新字符串替换
replace(s1,s2),用字符串s1代替原字符串中的s2
如果找不到就输出原字符串
public static void main(String[] args) {
String str = "wsmOffers";
//可以替换字符
String res1 = str.replace('w', 'q');
//可以替换字符串
String res2 = str.replaceAll("Offers", "BATJTMD");
//找不到就输出原字符串
String res3 = str.replaceAll("offers", "BATJTMD");
System.out.println("res1="+res1);
System.out.println("res2="+res2);
System.out.println("res3="+res3);
}
输出
res1=qsmOffers
res2=wsmBATJTMD
res3=wsmOffers
刷题过程中遇到什么再补充…
【java】String类常见操作的更多相关文章
- Java 11 - Java String类
Java String类 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串. 创建字符串 创建字符串最简单的方式如下: String gree ...
- Java-Runoob:Java String 类
ylbtech-Java-Runoob:Java String 类 1.返回顶部 1. Java String 类 字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 ...
- Java String类详解
Java String类详解 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 类结构: public final ...
- JAVA String 类
java String类中的常用方法:public char charAt(int index)返回字符串中第index个字符:public int length()返回字符串的长度:public i ...
- Java String类具体解释
Java String类具体解释 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,非常多时候,我们对它既熟悉又陌生. 类结构: public fin ...
- Java Object类 和 String类 常见问答 6k字+总结
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- java基础系列(一):Number,Character和String类及操作
这篇文章总结了Java中最基础的类以及常用的方法,主要有:Number,Character,String. 1.Number类 在实际开发的过程中,常常会用到需要使用对象而不是内置的数据类型的情形.所 ...
- 《java入门第一季》之类(String类常见方法小叙)
String类下面的构造方法和一些常见的方法: /* * 字符串:就是由多个字符组成的一串数据.也可以看成是一个字符数组. * 通过查看API,可以知道 * A:字符串字面值"abc&quo ...
- Java学习笔记之:Java String类
一.引言 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串. 创建字符串最简单的方式如下: String str= "Hello w ...
随机推荐
- 外网ssh内网Linux服务器holer实现
外网ssh访问内网linux 内网的主机上安装了Linux系统,只能在局域网内访问,怎样从公网也能ssh访问本地Linux服务器? 本文将介绍使用holer实现的具体步骤. 1. 准备工作 1.1 安 ...
- .NET并行计算和并发4-Thread-Relative Static Fields and Data Slots
Thread Local Storage: Thread-Relative Static Fields and Data Slots 文章摘自msdn library官方文档 可以使用托管线程本地存储 ...
- ipv4-only网络环境下访问ipv6站点
使用6plat.org+openVPN(无需资金投入)进入ipv6网络 这里我们主要使用的是6plat.org提供的“46模块——IPv4到IPv6”功能,需要配合openVPN这个软件,支持wind ...
- solr增加中文分析器
我的solr版本是5.3.0 1将jar包ik-analyzer-solr5-5.x.jar放入sor的web-inf的lib里面 2 在web-inf下面新建classes目录,再新增三个配置文件: ...
- Mat的详解
[转]OpenCV中Mat的详解 每次碰到Mat都得反复查具体的用法,网上的基础讲解不多,难得看到一篇,赶快转来收藏~ 原文地址:http://www.opencvchina.com/thread-1 ...
- CH5702 Count The Repetitions
题意 5702 Count The Repetitions 0x50「动态规划」例题 描述 定义 conn(s,n) 为 n 个字符串 s 首尾相接形成的字符串,例如: conn("abc& ...
- Java_IO_文件的续写_小笔记
package IO; import java.io.FileWriter; import java.io.IOException; class FileWrite_WenJianXuXie { /* ...
- Dynamics 365 CRM large instance copy
使用CRM 大家想必都做过copy. 从一个instance 复制到另外一个instance. 如果你是Dynamics 365 CRM 用户, 并且你的instance超过500GB,甚至1TB+的 ...
- docker-compose 安装redis sentinel,共享主机网络模式
采坑记录: docker sentinel模式安装完后因为是使用bridge模式,所以只有docker中运行的程序才能访问.刚开始尝试使用端口映射,返现sentinel返回的地址依然是docker的内 ...
- 关于缓冲的认识---Frame Buffer
关于缓冲的认识---Frame Buffer 重点来了: