Java学习-常用类(String)

一、创建

字符串常量,字符串长度不可变。

1.1 直接创建

语法:String 字符串名 = “字符串内容”;
特点:
(1)用法同基本类型。因为,此处未创建对象。

String str1 = "bjh"; 
String str2 = "bjh";
String str3 = new String("bjh");
String str4 = new String("bjh");
System.out.println(str1 == str2); // 结果:true。
System.out.println(str3 == str4); // 结果:false。
System.out.println(str1 == str4); // 结果:false。
System.out.println(str1.equals(str2)); // 结果:true。
System.out.println(str3.equals(str4)); // 结果:true。
System.out.println(str1.equals(str4)); // 结果:true。

1.2 构造函数创建

语法:String 字符串名 = new String(“字符串内容”)
注意:此种方式创建了两个对象。

String str = new String("bjh"); // 注意:此种方式创建了两个对象。
System.out.println(str);

1.3 字符数组转换

语法: String 字符串名 = new String(字符数组名)

char[] charstr = { 'b', 'a', 'i', 'd', 'u'};
String str = new String(charstr);
System.out.println(str);

二、长度

2.1 字符串.length()

语法:字符串.length();

System.out.println("123".lenth());

2.2 字符串名.length()

语法:字符串名.length();

String str = new String("123");
System.out.println(str.length()); 

三、格式化

3.1 printf()

语法:
作用:

String f = "浮点型变量的值为%f,整型变量的值为%d,字符串变量的值为%s"
float floatVar = 1.0f;
int intVar = 2;
String stringVar = "we";
System.out.printf(f, floatVar, intVar, stringVar);

3.2 format()

语法:
作用:

String f = "浮点型变量的值为%f,整型变量的值为%d,字符串变量的值为%s"
float floatVar = 1.0f;
int intVar = 2;
String stringVar = "we";
String fs = String.format(f, floatVar, intVar, stringVar);
System.out.println(fs);

3.3 trim()

作用:去除字符串两端的空格。
适用场景:多用于获取用户输入的字符串。

String str = " 123 ";
String str2 = str.trim();
System.out.println(str2);

四、获取

4.1 知索引

4.1.1 单字符——charAt()

语法:字符串名.charAt(索引);

// 需求:获取第二个字符。
String str = "abcde";
System.out.println(str.charAt(1));
// 结果:b

4.1.2 多字符——substring()

语法一:字符串名.substring(beginindex,endindex);

// 需求:知索引1,3,获取之间的字符,遵循[1,3)。
String str = "abcde";
System.out.println(str.substring(1,3));
// 结果:bc

语法二:字符串名.substring(beginindex,beginindex + length);

// 需求:知索引1,长度为3,获取之间的字符,则遵循[1,1+3)。
String str = "abcde";
System.out.println(str.substring(1,4));
// 结果:bcd。

语法三:字符串名.substring(beginindex);

// 需求:知索引1,获取之后所有字符。
String str = "abcde";
System.out.println(str.substring(1));
// 结果:bcde。

4.2 知字符

语法:字符串名.indexOf(“待查字符串”);
注意:获取第一次出现的索引。
语法:字符串名.lastIndexOf(“待查字符串”);
注意:获取最后一次出现的索引。

// 需求:获取ce第一次出现的索引。
String str = "abcedecedece";
System.out.println(str.indexOf("ce"));
// 结果:2。
// 需求:获取ce最后一次出现的索引。
String str = "abcedecedece";
System.out.println(str.lastIndexOf("ce"));
// 结果:10。

五、增加

5.1 最后(前)面增加——拼接

5.1.1 +

语法:字符串名 + 字符串名 + 字符串名;

String str1 = new String("123");
String str2 = new String("45");
str1 = str1 + str2;
System.out.println(str1);

5.1.2 concat

语法:字符串名.concat(字符串名);
缺点:一次只能操作两个字符串。

String str1 = new String("123");
String str2 = new String("45");
str1.concat(str2);
System.out.println(str1);

5.2 任意位置增加

参见《Java学习-常用类(StringBuilder)》

StringBuilder str = new StringBuilder("123");
str.insert(1,"a");
Stystem.out.println(str);

六、替换

6.1 替换全部——replace

语法:字符串名.replace(原字符,新字符);
语法:字符串名.replaceAll(正则表达式,新字符);

String str = "ab123ca";
System.out.println(str.replace("a","A")); // 结果:Ab123cA	
System.out.println(str.replaceAll("a","A")); // 结果:Ab123cA
System.out.println(str.repalceAll("\\d","A")); // 结果:abAAAca。   

6.2 替换第一个——replaceFirst

语法:字符串名.replaceFirst(正则表达式,新字符);

String str = "12a3a";
System.out.println(str.replaceFirst("a","A")); // 结果:12A3a
System.out.println(str.replaceFirst("\\d","A")); // 结果:A2a3a

6.3 替换指定位置

思路:先转化为数组,再替换,再转换为字符串。

// 替换第二个字符。为A。1Aa3a。
String str = "12a3a";
char[] arr1 = str.toCharArray();
System.out.println(Arrays.toString(arr1));
arr1[1] = 'A';
System.out.println(Arrays.toString(arr1));
String str2 = new String(arr1);
System.out.println(str2);

七、删除

7.1 知字符——replace

参见 六、替换

String str = "123a123a";
System.out.println(str.replace("a",""));

7.2 知索引

思路:先转化为数组,再删除,再转换为字符串。

// 替换第二个字符。为A。1Aa3a。
public static void main(String[] args){
  String str = "12a3a";
  System.out.println(delChar(str,1));
}
public static String delChar(String str,int index){
  char[] arr1 = str.toCharArray();
  char[] arr2 = new char[arr1.length-1];
  int j = 0;
  for(int i = 0; i < arr1.length; i++){
    if( i == index){
      continue;
    }else{
      arr2[j] = arr1[i];
      j++;
    }
  }
  return new String(arr2);
}

八、拆分——split()

拆分结果:字符串数组。

8.1 全部拆分

语法:字符串名.split(正则表达式);

String str = "Aabcedaefagce";
String[] arr1 = str.split("a");
for (String s: arr1){
  System.out.println(s);// 结果:A bced  ef gce
} 	   

8.2 限制次数拆分

语法:字符串名.split(正则表达式,拆分次数);

String str = "Aabcedaefagce";
String[] arr2 = str.split("a",2);	   
for (String s: arr2){
  System.out.println(s);// 结果:A bcedaefagce
}  

九、比较

9.1 equals()或==

equals:只比较内容是否相等。
==:即比较内容是否相等,又比较内存地址是否相等。
语法:字符串名.equals(待比较字符串名);
语法:字符串名==待比较字符串名;

String str1 = "bjh"; 
String str2 = "bjh";
String str3 = new String("bjh");
String str4 = new String("bjh");
System.out.println(str1 == str2); // 结果:true。
System.out.println(str3 == str4); // 结果:false。
System.out.println(str1 == str4); // 结果:false。
System.out.println(str1.equals(str2)); // 结果:true。
System.out.println(str3.equals(str4)); // 结果:true。
System.out.println(str1.equals(str4)); // 结果:true。

9.2 compareTo()

语法:字符串名.compareTo(待比较字符串名);
注意:考虑大小写。
语法:字符串名.compareToIgnoreCase(待比较字符串名);
注意:不考虑大小写。

String str = "abcedefgce";
// 包含时,且小于,返回1
System.out.println(str.compareTo("a"));// 结果:1
// 等于时,返回0
System.out.println(str.compareTo("abcedefgce"));// 结果:0
// 被包含时,即大于时,返回-1
System.out.println(str.compareTo("abcedefgcem"));// 结果:-1
// 无关系时,返回字符串第一个字母和m的ASCII码的差值。
System.out.println(str.compareTo("m"));// 结果:-12。

9.3 startsWith()或endsWith()

语法:字符串名.startsWith(待比较字符串名);
语法:字符串名.endsWith(待比较字符串名);

String str = "abcedefgce";
String str2 = "abcedefgce";
System.out.println(str.startsWith("ab")); // 开头为true,不开头为false。
System.out.println(str.endsWith("ce")); // 结尾为true,不结尾为false。

9.4 matches()

参见《Java学习-正则表达式》
语法: 字符串名.matches(正则表达式);


十、字母大小写互转

10.1 转大写——toUpperCase()

String str = "abcedaefagce";
String strA = str.toUpperCase();
System.out.println(strA);

10.2 转小写——toLowerCase()

String str = "abcedaefagce";
String strA = str.toUpperCase();
String stra = strA.toLowerCase();
System.out.println(stra);

十一、与数组互转

11.1 转化为数组

11.1.1 转换为字符数组——toCharArray()

语法: 字符串名.toCharArray();

String str = "abc,eda,efa,gce";
char[] arr2 = str.toCharArray();
for (char s: arr2){
  System.out.println(s);// 结果:a b c , e d a , e f a , g c e
} 

11.1.2 根据字符转化为字符串数组——split()

语法:字符串名.split(“分割符”);

String str = "abc,eda,efa,gce";
String[] arr1 = str.split(",");
for (String s: arr1){
  System.out.println(s);// 结果:abc,eda,efa,gce
} 

11.2 数组转化为字符串

11.2.1 字符串数组——拼接转化

String[] arr1 = {"23","34","23"};
String str = "";
for(int i = 0; i < arr1.length; i++){
  str = str + arr1[i];
}

11.2.2 字符数组——new String(charArray)

char[] arr1 = {'1','2','3'};
String str = new String(arr1);

十二、与数字互转

12.1 字符串转数字——parse数据类型()

语法:数据类型类.parse数据类型(字符串)

String  str = "345";
System.out.println(Integer.parseInt(str) + 1); // 结果:346。

12.2 数字转字符串——toString()

语法一:数字名.toString();
语法二:数字名 + “”;
语法三:String.valueOf(数字名);

Integer  num = 345;
System.out.println(num.toString());
System.out.println(num + ""); 
System.out.println(String.valueOf(num)); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值