Java最全看了就懂的Java字符串操作详解,Java高级工程师面试实战

独家面经总结,超级精彩

本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!

image

image

image

image

Java面试准备

准确的说这里又分为两部分:

  1. Java刷题
  2. 算法刷题

Java刷题:此份文档详细记录了千道面试题与详解;

image

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

System.out.println(isNumberChar(str));

}

public static void main(String[] args) {

String str = “1d4567”;

System.out.println(isNumberChar(str));

}

🎈字节与字符串


字节常用于数据传输以及编码转换的处理之中,String 也能方便的和 byte[] 相互转换

NO方法名称类型描述
1public String(byte bytes[])构造将字节数组变为字符串
2public String(byte bytes[],int offset,int length)构造将部分字节数组中的内容变为字符串
3public bye[] getBytes()普通将字符串以字节数组的形式返回
4

public byte[] getBytes(String charsetNAme)throws

UnsupportedEncodingException

普通编码转化处理

代码示例: 实现字符串与字节数组的转换处理

public static void main(String[] args) {

String str = “helloworld” ;

// String 转 byte[]

byte[] data = str.getBytes() ;

for (int i = 0; i < data.length; i++) {

System.out.print(data[i]+" ");

}

System.out.println();

// byte[] 转 String

System.out.println(new String(data));

}

public static void main(String[] args) {

byte[] bytes = {97,98,99,100};

String str = new String(bytes,1,3);

System.out.println(str);

}

🎈小结


byte[] 是把 String 按照一个字节一个字节的方式处理, 这种适合在网络传输, 数据存储这样的场景下使用. 更适合 针对二进制数据来操作.

char[] 是吧 String 按照一个字符一个字符的方式处理, 更适合针对文本数据来操作, 尤其是包含中文的时候.

✨字符串常见操作

============

🎈字符串比较

No方法名称类型描述
1public boolean equals(Object anObject)普通区分大小的比较
2public boolean equalsIanorecase(String anotherString)普通不区分大小写的比较
3public int compareTo(String anotherString)普通比较两个字符串大小关系

代码示例: 不区分大小写比较

public static void main(String[] args) {

String str1 = “hello” ;

String str2 = “Hello” ;

System.out.println(str1.equals(str2)); // false

System.out.println(str1.equalsIgnoreCase(str2)); // true

}

在String类中compareTo()方法是一个非常重要的方法,该方法返回一个整型,该数据会根据大小关系返回三类内容:

1. 相等:返回0.

2. 小于:返回内容小于0.

3. 大于:返回内容大于0。

public static void main(String[] args) {

System.out.println(“A”.compareTo(“a”)); // -32

System.out.println(“a”.compareTo(“A”)); // 32

System.out.println(“A”.compareTo(“A”)); // 0

System.out.println(“AB”.compareTo(“AC”)); // -1

System.out.println(“刘”.compareTo(“杨”));

}

compareTo()是一个可以区分大小关系的方法,是String方法里是一个非常重要的方法。

字符串的比较大小规则, 总结成三个字 “字典序” 相当于判定两个字符串在一本词典的前面还是后面. 先比较第一 个字符的大小(根据 unicode 的值来判定), 如果不分胜负, 就依次比较后面的内容

🎈字符串查找


从一个完整的字符串之中可以判断指定内容是否存在,对于查找方法有如下定义:

NO方法名称类型描述
1public boolean contains(CharSequence s)普通判断一个子字符串是否存在
2public int indexOf(String str)普通从头开始查找指定字符串的位置,查到了返回位置的开始索引,如果查不到返回-1
3public int indexOf(String str,int fromIndex)普通从指定位置查找子字符串位置
4public int LastIndexOf(String str)普通从后向前查找子字符串位置
5public int LastIndexOf(String str, int fromIdex)普通从指定位置由后向前查找
6public boolean startWith (String prefix)普通判断是否以指定字符串开头
7public boolean startWith(String prefix, int toffset)普通从指定位置开始判断是否以指定字符串开头
8public boolean endWith(String suffix)普通判断是否以指定字符串结尾

代码示例: 字符串查找,最好用最方便的就是contains()

public static void main(String[] args) {

String str = “helloworld” ;

System.out.println(str.contains(“world”));

System.out.println(str.contains(“forld”));

}

代码示例: 使用indexOf()方法进行位置查找

public static void main(String[] args) {

String str = “helloworld” ;

System.out.println(str.indexOf(“world”)); // 5,w开始的索引

System.out.println(str.indexOf(“bit”)); // -1,没有查到

if (str.indexOf(“hello”) != -1) {

System.out.println(“可以查到指定字符串!”);

}

}

代码示例: 使用indexOf()的注意点

public static void main(String[] args) {

String str = “helloworld” ;

System.out.println(str.indexOf(“l”)); // 2

System.out.println(str.indexOf(“l”,5)); // 8

System.out.println(str.lastIndexOf(“l”)); // 8

}

代码示例: 判断开头或结尾

public static void main(String[] args) {

String str = “**@@helloworld!!” ;

System.out.println(str.startsWith(“**”)); // true

System.out.println(str.startsWith(“@@”,2)); // ture

System.out.println(str.endsWith(“!!”)); // true

}

🎈字符串替换


使用一个指定的新的字符串替换掉已有的字符串数据,可用的方法如下

No方法名称类型描述
1public String replaceAll(String regex,String replacement)普通替换所有指定的内容
2public String replaceFirst(String regex, String replacement)普通替换首个内容

代码示例: 字符串的替换处理

public static void main(String[] args) {

String str = “helloworld” ;

System.out.println(str.replaceAll(“l”, “_”));

System.out.println(str.replaceFirst(“l”, “_”));

}

注意事项: 由于字符串是不可变对象 , 替换不修改当前字符串, 而是产生一个新的字符串

字符串拆分

可以将一个完整的字符串按照指定的分隔符划分为若干个子字符串。

NO方法名称类型描述
1public String[] split(String regex)普通将字符串全部拆分
2public String[] split(String regex,int limit)普通将字符串部分拆分

代码示例: 实现字符串的拆分处理

public static void main(String[] args) {

String str = “hello world hello yu” ;

String[] result = str.split(" ") ; // 按照空格拆分

for(String s: result) {

System.out.println(s);

}

}

代码示例: 字符串的部分拆分

public static void main(String[] args) {

String str = “hello world hello yu” ;

String[] result = str.split(" ",2) ;

for(String s: result) {

System.out.println(s);

}

}

代码示例: 拆分IP地址

public static void main(String[] args) {

String str = “192.168.1.1” ;

String[] result = str.split(“\.”) ;

for(String s: result) {

System.out.println(s);

}

}

注意事项:

1. 字符"|“,”*“,”+“都得加上转义字符,前面加上”\".

2. 而如果是"“,那么就得写成”\\".

3. 如果一个字符串中有多个分隔符,可以用"|"作为连字符

代码示例: 多次拆分

public static void main(String[] args) {

String str = “name=zhangsan&age=18” ;

String[] result = str.split(“&”) ;

for (int i = 0; i < result.length; i++) {

String[] temp = result[i].split(“=”) ;

System.out.println(temp[0]+" = "+temp[1]);

}

}

🎈字符串截取


从一个完整的字符串之中截取出部分内容。可用方法如下:

NO方法名称类型描述
1public String substring(int beginIndex)普通从指定索引截取到结尾
2public String substring(int beginIndex, int endIndex)普通截取部分内容

代码示例: 观察字符串截取

public static void main(String[] args) {

String str = “helloworld” ;

System.out.println(str.substring(5));

System.out.println(str.substring(0, 5));

}

最后

我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习

已经将知识体系整理好(源码,笔记,PPT,学习视频)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

id main(String[] args) {

String str = “helloworld” ;

System.out.println(str.substring(5));

System.out.println(str.substring(0, 5));

}

最后

我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习

已经将知识体系整理好(源码,笔记,PPT,学习视频)

[外链图片转存中…(img-fDiPcCcp-1715352949412)]

[外链图片转存中…(img-0KfzYouJ-1715352949412)]

[外链图片转存中…(img-TDgCYets-1715352949413)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

java字符串操作大全,适合初学者,浅显易JAVA字符串操作 2008-07-11 15:39:42| 分类: JAVA | 标签: |字号大中小 订阅 . JAVA字符串的方法 String a = "53c015"; //Integer.parseInt(s, radix) radix设置为10,表示10进制,16表示16进制啦 int i = Integer.parseInt(a, 16); 1、length() 字符串的长度   例:char chars[]={'a','b'.'c'};     String s=new String(chars);     int len=s.length(); 2、charAt() 截取一个字符   例:char ch;     ch="abc".charAt(1); 返回'b' 3、getChars() 截取多个字符   void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)   sourceStart指定了子串开始字符的下标,sourceEnd指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到sourceEnd-1的字符。接收字符的数组由target指定,target中开始复制子串的下标值是targetStart。   例:String s="this is a demo of the getChars method.";     char buf[]=new char[20];     s.getChars(10,14,buf,0); 4、getBytes()   替代getChars()的一种方法是将字符存储在字节数组中,该方法即getBytes()。 5、toCharArray() 6、equals()和equalsIgnoreCase() 比较两个字符串 7、regionMatches() 用于比较一个字符串中特定区域与另一特定区域,它有一个重载的形式允许在比较中忽略大小写。   boolean regionMatches(int startIndex,String str2,int str2StartIndex,int numChars)   boolean regionMatches(boolean ignoreCase,int startIndex,String str2,int str2StartIndex,int numChars) 8、startsWith()和endsWith()   startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束 9、equals()和==   equals()方法比较字符串对象中的字符,==运算符比较两个对象是否引用同一实例。   例:String s1="Hello";     String s2=new String(s1);     s1.eauals(s2); //true     s1==s2;//false 10、compareTo()和compareToIgnoreCase() 比较字符串 11、indexOf()和lastIndexOf()   indexOf() 查找字符或者子串第一次出现的地方。   lastIndexOf() 查找字符或者子串是后一次出现的地方。 12、substring()   它有两种形式,第一种是:String substring(int startIndex)          第二种是:String substring(int startIndex,int endIndex) 13、concat() 连接两个字符串 14 、replace() 替换   它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:   String replace(char original,char replacement)   例如:String s="Hello".replace('l','w');   第二种形式是用一个字符序列替换另一个字符序列,形式如下:   String replace(CharSequence original,CharSequence replacement) 15、trim() 去掉起始和结尾的空格 16、valueOf() 转换为字符串 17、toLowerCase() 转换为小写 18、toUpperCase() 转换为大写 19、StringBuffer构造函数   StringBuffer定义了三个构造函数:   StringBuffer()   StringBuffer(int size)   StringBuffer(String str)   StringBuffer(CharSequence chars)      (1)、length()和capacity()     一个StringBuffer当前长度可通过length()方法得到,而整个可分配空间通过capacity()方法得到。      (2)、ensureCapacity() 设置缓冲区的大小     void ensureCapacity(int capacity)   (3)、setLength() 设置缓冲区的长度     void setLength(int len)   (4)、charAt()和setCharAt()     char charAt(int where)     void setCharAt(int where,char ch)   (5)、getChars()     void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)   (6)、append() 可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾。     例:int a=42;       StringBuffer sb=new StringBuffer(40);       String s=sb.append("a=").append(a).append("!").toString();   (7)、insert() 插入字符串     StringBuffer insert(int index,String str)     StringBuffer insert(int index,char ch)     StringBuffer insert(int index,Object obj)     index指定将字符串插入到StringBuffer对象中的位置的下标。   (8)、reverse() 颠倒StringBuffer对象中的字符     StringBuffer reverse() 分代码如下
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值