Java笔记——String类各种方法的使用总结(附带实例)

System.out.println(s1.startsWith(“hel”)); //true

System.out.println(s1.startsWith(“He”)); //false

System.out.println(s1.startsWith(“world”)); //false

System.out.println(“==============”);

//boolean endsWith(String str)测试此字符串是否以指定的后缀结尾

//区分大小写

System.out.println(s1.endsWith(“world”)); //true

System.out.println(s1.endsWith(“lD”)); //false

System.out.println(“==============”);

//boolean isEmpty()当字符串的length()为0时返回true

String s3 = “”;

System.out.println(s3.isEmpty()); //true

System.out.println(s1.isEmpty()); //false

//这里需要注意的是,String s = null没有对象,不算空字符串,不能调用方法

String s4 = null;

//System.out.println(s4.isEmpty()); //这里会报空指针的错误

//同样的,如果进行字符串的比较,为了防止出现空指针异常,将变量放后面

//System.out.println(s4.equals(“java”)); //这里一样会报错,空指针异常

//因此推荐这么写

System.out.println(“java”.equals(s4)); //结果是false

}

}

String类的获取方法

String类实现获取功能的方法有

int length() —— 获取字符串长度

char charAt(int index) —— 获取指定索引处的字符值

int indexOf(int ch) —— 获取指定字符第一次出现的索引位置

int indexOf(String str) —— 获取指定字符串第一次出现的索引位置

int indexOf(int ch,int fromIndex) —— 从指定位置开始获取指定字符第一次出现的索引位置

int indexOf(String str,int fromIndex) —— 从指定位置开始获取指定字符串第一次出现的索引位置

String substring(int start) —— 截取字符串,范围是从start到最后

String substring(int start,int end) —— 截取字符串,范围是【start,end)

package test.StringDemo;

public class demo6 {

public static void main(String[] args) {

String s = “helloworld”;

//int length() 获取字符串的长度

System.out.println(s.length()); // 10

System.out.println(“=============”);

//public char charAt(int index)返回char指定索引处的值

//索引值的范围是从0开始到length()-1

System.out.println(s.charAt(0)); // h

System.out.println(s.charAt(9)); // d

//System.out.println(s.charAt(10)); //字符串下标越界异常

System.out.println(“=============”);

//public int indexOf(int ch)返回指定字符第一次出现的字符串内的索引。

//括号里面传入的是指定字符对应的ASCII码值,具体写的时候写ASCII码值和直接写字符都可以

System.out.println(s.indexOf(104)); // 0

System.out.println(s.indexOf(‘l’)); // 2

System.out.println(s.indexOf(‘a’)); //不存在,返回-1

System.out.println(“=============”);

//public int indexOf(String str)

//返回括号中指定的子字符串第一次出现的索引

System.out.println(s.indexOf(“owo”)); // 4

System.out.println(s.indexOf(“ovo”)); //不存在,返回-1

System.out.println(“=============”);

// public int indexOf(int ch,int fromIndex)

// 返回指定字符第一次出现的索引,以指定的索引开始搜索,搜索范围包括指定的索引

System.out.println(s.indexOf(‘l’,4)); // 8

System.out.println(s.indexOf(‘e’,1)); // 1

System.out.println(s.indexOf(‘h’,1)); //不存在,返回-1

System.out.println(“=============”);

//int indexOf(String str,int fromIndex)

//返回指定字符串第一次出现的索引,以指定的索引开始搜索

System.out.println(s.indexOf(“owo”,2)); // 4

System.out.println(s.indexOf(“owo”,8)); //不存在,返回-1

System.out.println(“=============”);

//public String substring(int beginIndex) 截取一段字符串

// 子字符串以指定索引处的字符开头,包括指定索引处,并扩展到该字符串的末尾。

System.out.println(s.substring(3)); // loworld

// 索引超出范围,返回空字符串

String ss = s.substring(10);

System.out.println(ss.equals(“”)); // true

System.out.println(“=============”);

//public String substring(int beginIndex,int endIndex)

//子串截取范围左闭右开,开始于指定beginIndex并延伸到字符索引endIndex-1

System.out.println(s.substring(1,3)); // el

//System.out.println(s.substring(1,12)); //数组下标越界异常

}

}

String类的转化方法

String类实现转换功能的方法有

byte[] getBytes() —— 转换为字节数组

char[] toCharArray() —— 转换为字符数组

static String valueOf(char[] chs) —— 字符数组转换为字符串

static String valueOf(int i) —— int值转换为字符串

String toLowerCase() —— 字符串全部小写

String toUpperCase() —— 字符串全部大写

String concat(String str) —— 将指定字符串连接到原字符串的后面

package test.StringDemo;

import java.util.Arrays;

public class demo7 {

public static void main(String[] args) {

String s = “helloWORLD”;

//public byte[] getBytes()

// 使用平台的默认字符集将此String编码为字节序列,将结果存储到新的字节数组中。

byte[] b = s.getBytes();

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

System.out.println(b[i]);

}

//也可以像下面这样打印,只需要一行

//[104, 101, 108, 108, 111, 87, 79, 82, 76, 68]

System.out.println(Arrays.toString(b));

System.out.println(“===============”);

//char[] toCharArray()将此字符串转换为新的字符数组。

//由原先的字符串变成字符数组

char[] chars = s.toCharArray();

for(char c:chars){

System.out.println©;

}

//[h, e, l, l, o, W, O, R, L, D]

System.out.println(Arrays.toString(chars));

System.out.println(“===============”);

//将字符数组转换为字符串

//static String valueOf(char[] chs)

System.out.println(String.valueOf(chars)); //helloWORLD

//同理这里也可以将int类型的数据转换为字符串类型

String ss = String.valueOf(20);

System.out.println(ss); //20

System.out.println(“===============”);

//String toLowerCase() 将字符串内容全部转化成小写

System.out.println(s.toLowerCase()); //helloworld

// String toUpperCase(),将字符串内容全部转大写

System.out.println(s.toUpperCase()); //HELLOWORLD

System.out.println(s); //helloWORLD,s自身的值并没有被改变

System.out.println(“===============”);

//public String concat(String str)将指定的字符串连接到该字符串的末尾

System.out.println(s.concat(“java”)); //helloWORLDjava

//这里同样需要注意的是

String s2 = null;

//这里会报空指针异常的错误

//System.out.println(s2.concat(“nothing”));

}

}

字符串的替换方法

实现替换功能的方法

String replace(char old,char new)

String replace(String old,String new)

package test.StringDemo;

public class demo10 {

public static void main(String[] args) {

String s = “helloworld”;

//String replace(char old,char new)替换字符

//将字符串中所有的l替换成a,返回一个新的字符串

String s1 = s.replace(‘l’,‘a’);

System.out.println(s1); //heaaoworad

//String replace(String old,String new)替换字符串

String s2 = s.replace(“owo”,“ovo”);

System.out.println(s2); //hellovorld

//如果被替换的字符串不存在,返回原来的字符串

String s3 = s.replace(“abc”,“efg”);

System.out.println(s3); //helloworld

}

}

去除字符串两边的空格

String trim()

package test.StringDemo;

public class demo11 {

public static void main(String[] args) {

//去除字符串两边的空格

String s = " hello ";

System.out.println(s);

System.out.println(s.trim());

}

}

在这里插入图片描述

按字典顺序比较两个字符串

int compareTo(String str) —— 按位置比较字符串

int compareToIgnoreCase(String str) ——按位置比较字符串,忽略大小写

package test.StringDemo;

public class demo12 {

public static void main(String[] args) {

//当前面的字符不相同时

String s1 = “hello”; //h的ASCII码值为104

String s2 = “hello”;

String s3 = “java”; //j的ASCII码值为106

String s4 = “apache”; //a的ASCII码值为97

System.out.println(s1.compareTo(s2)); //0

System.out.println(s1.compareTo(s3)); //-2

System.out.println(s1.compareTo(s4)); //7

//当前面的字符相同时

String ss1 = “hel”;

String ss2 = “helloworld”;

System.out.println(s1.compareTo(ss1)); //2

System.out.println(s1.compareTo(ss2)); //-5

//忽略大小写

String s5 = “Hello”; //H的ASCII码值为72

System.out.println(s1.compareTo(s5)); //32

System.out.println(s1.compareToIgnoreCase(s5)); //0

}

}

这里可以来看一下compareTo的源码

public int compareTo(String anotherString) {

int len1 = value.length;

int len2 = anotherString.value.length;

int lim = Math.min(len1, len2);

char v1[] = value;

char v2[] = anotherString.value;

int k = 0;

while (k < lim) {

char c1 = v1[k];

char c2 = v2[k];

if (c1 != c2) {

return c1 - c2;

}

k++;

}

return len1 - len2;

}

这里可以简单的总结为,

当对应位置的字符不相同时,返回的值是ASCII码值相减的结果。

当对应位置的字符都相同,但是字符个数不相同时,返回的是字符串长度相减的结果。

练习用的题目

题目一:统计一个字符串中大写字母,小写字母,数字出现的次数

package test.StringDemo;

public class demo8 {

public static void main(String[] args) {

String s = “helloHello123World”;

char[] chars = s.toCharArray();

int Bigcount = 0;

int Smallcount = 0;

int Numcount = 0;

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
课程,基本涵盖了95%以上Java开发知识点,真正体系化!**

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。

[外链图片转存中…(img-0qed0yCv-1713497663721)]

[外链图片转存中…(img-Y9u2TDcp-1713497663722)]

[外链图片转存中…(img-oYHGJM2z-1713497663724)]

[外链图片转存中…(img-MOzjxOiH-1713497663745)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件上传是Web开发中常见的功能之一,Java中也提供了多种方式来实现文件上传。其中,一种常用的方式是通过Apache的commons-fileupload组件来实现文件上传。 以下是实现文件上传的步骤: 1.在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency> ``` 2.在前端页面中添加文件上传表单: ```html <form method="post" enctype="multipart/form-data" action="upload"> <input type="file" name="file"> <input type="submit" value="Upload"> </form> ``` 3.在后台Java代码中处理上传文件: ```java // 创建一个DiskFileItemFactory对象,用于解析上传的文件 DiskFileItemFactory factory = new DiskFileItemFactory(); // 设置缓冲区大小,如果上传的文件大于缓冲区大小,则先将文件保存到临时文件中,再进行处理 factory.setSizeThreshold(1024 * 1024); // 创建一个ServletFileUpload对象,用于解析上传的文件 ServletFileUpload upload = new ServletFileUpload(factory); // 设置上传文件的大小限制,这里设置为10MB upload.setFileSizeMax(10 * 1024 * 1024); // 解析上传的文件,得到一个FileItem的List集合 List<FileItem> items = upload.parseRequest(request); // 遍历FileItem的List集合,处理上传的文件 for (FileItem item : items) { // 判断当前FileItem是否为上传的文件 if (!item.isFormField()) { // 获取上传文件的文件名 String fileName = item.getName(); // 创建一个File对象,用于保存上传的文件 File file = new File("D:/uploads/" + fileName); // 将上传的文件保存到指定的目录中 item.write(file); } } ``` 以上代码中,首先创建了一个DiskFileItemFactory对象,用于解析上传的文件。然后设置了缓冲区大小和上传文件的大小限制。接着创建一个ServletFileUpload对象,用于解析上传的文件。最后遍历FileItem的List集合,判断当前FileItem是否为上传的文件,如果是,则获取文件名,创建一个File对象,将上传的文件保存到指定的目录中。 4.文件上传完成后,可以给用户一个提示信息,例如: ```java response.getWriter().write("File uploaded successfully!"); ``` 以上就是使用Apache的commons-fileupload组件实现文件上传的步骤。需要注意的是,文件上传可能会带来安全隐患,因此在处理上传的文件时,需要进行严格的校验和过滤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值