【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 ...
随机推荐
- Msfvenom学习总结
1. –p (- -payload-options) 添加载荷payload. 载荷这个东西比较多,这个软件就是根据对应的载荷payload生成对应平台下的后门,所以只有选对payload,再填 ...
- FCC JS基础算法题(1):Factorialize a Number(计算一个整数的阶乘)
题目描述: 如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积.阶乘通常简写成 n!例如: 5! = 1 * 2 * 3 * 4 * 5 = 120. 算法: function fac ...
- canvas画圆类似于锯齿指针 angular5
拿到图的时候大致是这样的,里面的圆是有动态效果的,考虑到gif图耗资源,于是想要用canvas画出来: 仔细看图不难发现,这个锯齿圆类似于表盘,计算好弧度,不难实现: 因为项目现在用的框架是angul ...
- js实现颜色渐变
#grad { background: -webkit-linear-gradient(red, blue); /* Safari 5.1 - 6.0 */ background: -o-linear ...
- APP加急审核
提交加急审核需要理由,一般涉及到银行信息,或者崩溃打不开这种的比较容易通过.反正苹果很苛刻,一般不给处理.如果处理第二天就可以下载最新了,省去了漫漫的等待.一个成功加急审核的借口-- We found ...
- 【软件安装】nvidia驱动安装事宜
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html https://docs.nvidia.com/cuda/arch ...
- python学习之路05
控制流语句 博主认为所有的语言中,控制语句都是差不多的,无非就是循环,判断,if ,while,for.更重要的是,多加的练习,实战中发现自身问题,加深巩固 所以,下面会以实际的题目为主. 1.用户在 ...
- javascript继承的6种方法
1原型式继承 简介:对类式继承的封装,过渡对象相当于子类. function inheritObject(o) { //声明过渡函数对象 function F() {} //过渡对象的原型继承父类 F ...
- 第十二章 NIO
12.NIO 12.1 Java NIO 概述 1课时 12.2 Java NIO.2 之Path.Paths 与 Files 的使用 1课时 12.3 自动资源管理 1课时 12.4 缓冲区(Buf ...
- Eslint 能自动格式化代码,为什么还要用 Prettier?
ESLint 与 Prettier 区别: ESLint:代码检测工具:可以检测出你代码中潜在的问题,比如使用了某个变量却忘记了定义: Prettier:代码格式化工具:作为代码格式化工具,能够统一你 ...