Java String类的相关使用

String 字符串类:
笔试题目:new String(“abc”)创建了几个对象?
两个对象, 一个对象是 位于字符串常量池中,一个对象是位于堆内存中。

String 的构造方法:
String() 创建一个空内容 的字符串对象。
String(byte[] bytes) 使用一个字节数组构建一个字符串对象
String(byte[] bytes, int offset, int length)
bytes : 要解码的数组
offset: 指定从数组中那个索引值开始解码。
length: 要解码多个元素。

String(char[] value) 使用一个字符数组构建一个字符串。
String(char[] value, int offset, int count) 使用一个字符数组构建一个字符串, 指定开始的索引值,与使用字符个数。
String(int[] codePoints,int offset,int count)
String(String original)

记住: 使用字节数组或者字符数组都可以构建一个字符串对象。

public class Demo2 {
 	public static void main(String[] args) {
  		String str = new String();
  		byte[] buf = {97,98,99};
  		str = new String(buf); //使用一个字节数组构建一个字符串对象
  		str = new String(buf,1,2);   
  		//使用一个字节数组构建一个字符串对象,指定开始解码 的索引值和解码的个数。
  		char[] arr = {'明','天','是','圣','诞'};
 		str = new String(arr); //使用字符数组构建一个字符串
  		str = new String(arr,3,2);
  		int[]  buf2 = {65,66,67};
  		str = new String(buf2,0,3);
  		str = new String("abc");
  		System.out.println("字符串的内容:"+str); 
 	}
}

获取方法
int length() 获取字符串的长度
char charAt(int index) 获取特定位置的字符 (角标越界)
int indexOf(String str) 查找子串第一次出现的索引值,如果子串没有出现 在字符串中,那么则返回-1表示。
int lastIndexOf(String str) 查找子串最后一次出现的索引值 , 如果子串没有出现 在字符串中,那么则返回-1表示

  String str = "abc中国ab中国";
  System.out.println("字符串的字符 个数: " + str.length() );
  System.out.println("根据索引值获取对应 的字符:"+ str.charAt(3));
  System.out.println("查找子串第一次出现的索引值:" + str.indexOf("中国"));
  System.out.println("查找子串最后一次出现的索引值:" + str.lastIndexOf("中国"));
  /*
  	字符串的字符 个数: 9
	根据索引值获取对应 的字符:中
	查找子串第一次出现的索引值:3
	查找子串最后一次出现的索引值:7
  */

2.3 判断方法
boolean endsWith(String str) 是否以指定字符结束
boolean isEmpty()是否长度为0 如:“” null V1.6
boolean contains(CharSequences) 是否包含指定序列 应用:搜索
boolean equals(Object anObject) 是否相等
boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等
2.4 转换方法
char[] toCharArray() 将字符串转换为字符数组
byte[] getBytes();
字节数组与字符数组、字符串他们三者之间是可以互相转换。

  String str = "Demo.java";
  System.out.println("是否以指定 的字符串结束:"+ str.endsWith("ja"));
  //str = "";
  System.out.println("判断字符串是否为空内容:"+str.isEmpty());
  System.out.println("判断字符串是否包含指定的内容:"+ str.contains("Demo"));
  System.out.println("判断两个 字符串的内容是否一致:"+ "DEMO.JAVA".equals(str));
  System.out.println("判断两个字符串的内容是否一致(忽略大小写比较):"+ "DEMO.JAVA".equalsIgnoreCase(str));
  //转换的方法
  char[] buf = str.toCharArray();  //把字符串转换字符数组
  System.out.println("字符数组:"+ Arrays.toString(buf));
  byte[] buf2 = str.getBytes(); //把字符串转字节数组
  System.out.println("字节数组:"+ Arrays.toString(buf2));
  /*
  是否以指定 的字符串结束:false
  判断字符串是否为空内容:false
  判断字符串是否包含指定的内容:true
  判断两个 字符串的内容是否一致:false
  判断两个字符串的内容是否一致(忽略大小写比较):true
  字符数组:[D, e, m, o, ., j, a, v, a]
  字节数组:[68, 101, 109, 111, 46, 106, 97, 118, 97]
  */

其他方法
String replace(String oldChar, String newChar) 替换
String[] split(String regex) 切割
String substring(int beginIndex) 指定开始 的索引值截取子串
String substring(int beginIndex, int endIndex)指定开始 与结束的索引值截取子串
String toUpperCase() 转大写
String toLowerCase() 转小写
String trim() 去除字符串首尾的空格

  String str = "今天晚上不考试";
  System.out.println("指定新内容替换旧 的内容:"+ str.replace("不", "要好好"));
  str = "大家-下-午-好";
  String[] arr = str.split("-"); //根据指定的字符进行切割 。
  System.out.println("字符串数组的内容:"+ Arrays.toString(arr));
  str = "按实际按纪律啊";
  System.out.println("指定开始的索引值截取子串:"+ str.substring(2));
  System.out.println("指定开始的索引值截取子串:"+ str.substring(2,6)); 
  //包头不包尾  注意:截取的内容是包括开始的索引值,不包括结束的索引值, 截取的位置是结束的索引值-1.
  str = "abC中国";
  System.out.println("转大写:" + str.toUpperCase());
  str = "AbdfSDD"; 
  System.out.println("转小写:"+ str.toLowerCase());
  str = "         大家最近        都非常努力            ";
  System.out.println("去除字符串首尾的空格:"+ str.trim());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值