1.int length()
package string;
/**
* int length()
* 该方法可以返回当前字符串的长度(字符个数)
* @author adminitartor
*
*/
public class LengthDemo {
public static void main(String[] args) {
String str = "我爱java!";
int len = str.length();
System.out.println("length:"+len);
}
}
2.char charAt(int index)
package string;
/**
* char charAt(int index)
* 返回当前字符串中指定位置处对应的字符
* @author adminitartor
*/
public class CharAtDemo {
public static void main(String[] args) {
// 0123456789012345
String str = "thinking in java";
char c = str.charAt(9);
System.out.println(c);
/*
* 检测回文
* 上海自来水来自海上
*
* 规则:正数位置上的字符与倒数位置上的字符都
* 一样的则是回文
*/
String line = "上海自来水来海自上";
for(int i=0;i<line.length()/2;i++){
char c1 = line.charAt(i);
char c2 = line.charAt(line.length()-1-i);
if(c1!=c2){
System.out.print("不");
break;
}
}
System.out.println("是回文!");
}
}
3.int indexOf(String str)
package string;
/**
* int indexOf(String str)
* 查找给定字符串在当前字符串中的位置。若当前字符串不包含
* 给定内容,则返回值为-1.
* @author adminitartor
*/
public class IndexOfDemo {
public static void main(String[] args) {
// 0123456789012345
String str = "thinking in java";
int index = str.indexOf("in");
System.out.println("index:"+index);
/*
* 重载方法允许从指定位置开始查找第一次出现的位置
*/
index = str.indexOf("in", 3);
System.out.println("index:"+index);
/*
* 查找给定字符串在当前字符串中最后一次出现的位置
*/
index = str.lastIndexOf("in");
System.out.println("index:"+index);
}
}
4.String toUpperCase() 和 String toLowerCase()
package string;
/**
* 字符串提供了可以将当前字符串中的英文部分转换为全
* 大写或全小写
* String toUpperCase()
* String toLowerCase()
*
* @author adminitartor
*/
public class UpperLowerDemo {
public static void main(String[] args) {
String string = "我爱Java";
String upper = string.toUpperCase();
System.out.println("upper:"+upper);
String lower = string.toLowerCase();
System.out.println("lower:"+lower);
}
}
5.boolean startsWith(String str) 和 boolean endsWith(String str)
package string;
/**
* String startsWith(String str)
* 判断当前字符串是否是以给定的字符串开始的
*
* String endsWith(String str)
* 判断当前字符串是否是以给定的字符串结尾的
*
* @author adminitartor
*/
public class StartsWithDemo {
public static void main(String[] args) {
String line = "thinking in java";
boolean starts = line.startsWith("think");
System.out.println("starts:"+starts);
boolean ends = line.endsWith("ava");
System.out.println("ends:"+ends);
}
}
6.String substring(int start,int end)
package string;
/**
* String substring(int start,int end)
* 截取当前字符串中指定范围内的字符串,在API中有一个
* 特点,凡是使用两个数字表示范围时,通常都是"含头不含尾"
* 的。
* @author adminitartor
*
*/
public class SubstringDemo {
public static void main(String[] args) {
// 0123456789012
String str = "www.baidu.com";
//截取域名
String sub = str.substring(4,9);
System.out.println(sub);
//一个参数的则是从指定位置截取到末尾
sub = str.substring(4);
System.out.println(sub);
}
}
7.String trim()
package string;
/**
* String trim()
* 去除一个字符串两边的空白字符
*
* @author adminitartor
*
*/
public class TrimDemo {
public static void main(String[] args) {
String string = " hello ";
System.out.println(string);
String trim = string.trim();
System.out.println(trim);
}
}
8.String String.valueOf(其他类型);
package string;
/**
* 字符串提供了一组静态的方法:valueOf
* 可以将其他类型转换为字符串。常用的是将基本类型转换
* 为字符串。
* @author adminitartor
*/
public class ValueOfDemo {
public static void main(String[] args) {
int i = 123;
String iString = String.valueOf(i);
System.out.println(iString);
iString = i+"";//任何内容与字符串连接结果还是字符串
double d = 123.123;
String dString = String.valueOf(d);
System.out.println(dString);
}
}
9.boolean matches(String regex)
package string;
/**
* 字符串支持正则表达式方法一:
* boolean matches(String regex)
* 使用给定的正则表达式验证当前字符串是否满足格式要求。
* 需要注意,这里正则表达式无论是否加了边界匹配符(^...$)
* 都是做全匹配验证
* @author adminitartor
*/
public class MatchesDemo {
public static void main(String[] args) {
String mail = "fancq@csdn.com";
/*
* 邮箱的正则表达式:
* \w+@\w+(\.[a-zA-Z]+)+
*/
String regex = "\\w+@\\w+(\\.[a-zA-Z]+)+";
boolean check = mail.matches(regex);
if(check){
System.out.println("是邮箱");
}else{
System.out.println("不是邮箱");
}
}
}
10.String[] split(String regex)
package string;
/**
* 字符串支持正则表达式方法二:
* String[] split(String regex)
* 将当前字符串按照满足正则表达式的部分进行拆分,并返回
* 拆分后的内容
* @author adminitartor
*
*/
public class SplitDemo {
public static void main(String[] args) {
String line = "abc123def456ghi789jkl";
/*
* 按照数字部分拆分
* 在拆分过程中若连续匹配了两个可以拆分内容,那么
* 中间就会拆分出一个空字符串。但是若在字符串末尾
* 连续匹配,那么所有拆分出来的空字符串都会忽略。
*/
String[] arr = line.split("[0-9]+");
System.out.println(arr.length);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
11.String replaceAll(String regex,String str)
package string;
/**
* 字符串支持正则表达式的方法三:
* String replaceAll(String regex,String str)
* 将当前字符串中满足正则表达式的部分替换为给定字符串。
* @author adminitartor
*/
public class ReplaceAllDemo {
public static void main(String[] args) {
String line = "abc123def456ghi789jkl";
/*
* 将当前字符串中的数字部分替换为#NUMBER#
*/
line = line.replaceAll("[0-9]+", "#NUMBER#");
System.out.println(line);
}
}
12.StringBuilder类提供的增、删、改、插方法
package string;
/**
* 字符串的设计关注的是字符串的重用,对于修改字符串而言,
* 效率与资源消耗都比较大,为此字符串不适合频繁的修改。
* 对此,java提供了一个专门用于修改字符串内容的类:
* StringBuilder。其内部维护一个可变的char数组,所以修改
* 都是建立在一个StringBuilder对象上完成,不会反复创建
* 新对象。并且其还提供了便于修改字符串内容的相关方法,
* 包括的操作有:增,删,改,插。
* @author adminitartor
*/
public class StringBuilderDemo1 {
public static void main(String[] args) {
//默认创建内部表示空字符串
// StringBuilder builder = new StringBuilder();
String string = "努力学习java";
StringBuffer builder = new StringBuffer(string);
/*
* append():向当前字符串末尾追加给定内容
*/
builder.append(",为了找个好工作!");
//获取builder内部修改好的字符串
string = builder.toString();
System.out.println(string);
/*
* replace():将当前字符串指定范围内的内容替换
* 为给定字符串(修改部分内容)
*/
//努力学习java,为了找个好工作!
//努力学习java,就是为了改变世界!
builder.replace(9, 16, "就是为了改变世界");
System.out.println(builder.toString());
/*
* delete():删除当前字符串部分内容
*/
//努力学习java,就是为了改变世界!
//,就是为了改变世界!
builder.delete(0, 8);
System.out.println(builder.toString());
/*
* insert():将指定内容插入到指定位置
*/
//,就是为了改变世界!
//活着,就是为了改变世界!
builder.insert(0, "活着");
System.out.println(builder.toString());
}
}