字符串与字符数组
No. |
方法名称 |
类型 |
描述 |
01 |
public String(char [] value) |
构造 |
将传入的字符数组变为字符串 |
02 |
public String(char [] value, int offset, int count) |
构造 |
将部分字符数组变为字符串 |
03 |
public char charAt(int index) |
普通 |
获取指定索引位置的字符 |
04 |
public char [] toCharArray() |
普通 |
将字符串中的数据以字符数组的形式返回 |
//charAt()可以获取某一指定索引位置的字符
public class StringDemo {
public static void main(String args []) {
String str = "www.baidu.com";
char c = str.charAt(7);
System.out.println(c); //d
}
}
//toCharArray()
public class StringDemo {
public static void main(String args []) {
String str = "helloworld";
char [] result = str.toCharArray(); //将字符串变为字符数组
for(int x = 0; x < result.length; x++) {
result[x] -= 32;
}
String newStr = new String(result);
System.out.println(newStr);
System.out.println(new String(result, 0 , 5));
}
}
/**
判断一个字符串之中是否全部由数字组成
1.如果想要判断字符串中的每一位,最好的办法就是将字符串变为字符数组
2.可以判断每一个字符是否在数字的范围之内('0'~'9')
3.如果有一位不是数字则验证失败
*/
public class StringDemo {
public static void main(String args []) {
String str = "helloworld";
System.out.println(isNumber(str));
System.out.println(isNumber("123"));
}
//判断字符串是否由数字组成
public static boolean isNumber(String str) {
char [] result = str.toCharArray(); //将字符串变为字符数组
for(int x = 0; x < result.length; x++) {
if(result[x] < '0' || result[x] > '9') {
return false;
}
}
return true;
}
}
字符串与字节数组
- 字符串与字节数组之间也可以实现转换的处理操作,但需要提醒一下,当字符串与字节转换时,其主要目的是为了进行二进制的数据传输,或者是进行编码转换
No. |
方法名称 |
类型 |
描述 |
01 |
public String(byte [] bytes) |
构造 |
将全部字节数组变为字符串 |
02 |
public String(byte [] bytes, int offset, int length) |
构造 |
将部分字节数组变为字符串 |
03 |
public byte [] getBytes() |
普通 |
将字符串转为字节数组 |
04 |
public byte [] getBytes(String charsetName) throws UnsupportedEncodingException |
普通 |
编码转换 |
//字节本身有长度限制,一个字节最多可以保存的范围:-128~127
public class StringDemo {
public static void main(String args []) {
String str = "helloworld";
byte [] data = str.getBytes(); //将字符串变为字节数组
for(int x = 0; x < data.length; x++) {
data[x] -= 32;
}
System.out.println(new String(data));
System.out.println(new String(data, 0 , 5));
}
}
字符串比较
- 字符串比较最常用的方法是equals(),但是这个方法需要注意的是其是进行大小写区分的
No. |
方法名称 |
类型 |
描述 |
01 |
public boolean equals(String anObject) |
普通 |
区分大小写的相等判断 |
02 |
public boolean equalsIgnoreCase(String anotherString) |
普通 |
不区分大小写的比较 |
03 |
public int compareTo(String anotherString) |
普通 |
进行字符串大小比较,该方法返回一个int数据,该数据有三种取值:大于(>0)、小于(<0)、等于(=0) |
04 |
public int compareToIgnoreCase(String str) |
普通 |
不区分大小写进行字符串大小比较 |
//equals() 区分大小写
public class StringDemo {
public static void main(String args []) {
String strA = "helloworld";
String strB = "HELLOWORLD";
System.out.println(strA.equals(strB)); //false
}
}
//equalsIgnoreCase() 不区分大小写
public class StringDemo {
public static void main(String args []) {
String strA = "helloworld";
String strB = "HELLOWORLD";
System.out.println(strA.equalsIgnoreCase(strB)); //true
}
}
//compareTo() compareToIgnoreCase()
public class StringDemo {
public static void main(String args []) {
String strA = "m";
String strB = "M";
System.out.println(strA.compareTo(strB)); //32
System.out.println(strB.compareTo(strA)); //-32
System.out.println("M".compareTo("M")); //0
System.out.println(strA. compareToIgnoreCase(strB)); //0
}
}
字符串查找
- 从一个完整字符串中查找子字符串的存在就属于字符串查找操作
No. |
方法名称 |
类型 |
描述 |
01 |
public boolean contains(String s) |
普通 |
判断子字符串是否存在 |
02 |
public int indexOf(String str) |
普通 |
从头查找指定字符串的位置,找不到返回-1 |
03 |
public int indexOf(String str, int fromIndex) |
普通 |
从指定位置查找指定字符串的位置 |
04 |
public int lastIndexOf(String str) |
普通 |
从后向前查找指定字符串的位置 |
05 |
public int lastIndexOf(String str, int fromIndex) |
普通 |
由指定位置从后向前查找指定字符串的位置 |
06 |
public boolean startsWith(String prefix) |
普通 |
判断是否以指定的字符串开头 |
07 |
public boolean startsWith(String prefix, int toffset) |
普通 |
由指定位置判断是否以指定的字符串开头 |
08 |
public boolean endsWith(String suffix) |
普通 |
是否以指定的字符串结尾 |
public class StringDemo {
public static void main(String args []) {
String str = "www.baidu.com";
System.out.println(str.contains("baidu")); //true
System.out.println(str.indexOf("baidu")); //4
System.out.println(str.lastIndexOf("baidu")); //4
System.out.println(str.startsWith("baidu")); //false
System.out.println(str.endsWith("baidu")); //false
}
}
字符串替换
No. |
方法名称 |
类型 |
描述 |
01 |
public String replaceAll(String regex, String replacement) |
普通 |
全部替换 |
02 |
public String replaceFirst(String regex, String replacement) |
普通 |
替换首个 |
public class StringDemo {
public static void main(String args []) {
String str = "helloworld";
System.out.println(str.replaceAll("l", "_")); //he__owor_d
System.out.println(str.replaceFirst("l", "_")); //he_loworld
}
}
字符串拆分
- 根据一个指定的字符串或者一些表达式实现字符串的拆分,并且拆分完的数据将以字符串数组的形式返回
No. |
方法名称 |
类型 |
描述 |
01 |
public String [] splic(String regex) |
普通 |
按照指定的字符串全部拆分 |
02 |
public String [] splic(String regex, int limit) |
普通 |
按照指定字符串拆分为指定个数,后面不拆了 |
public class StringDemo {
public static void main(String args []) {
String str = "hello world hello xiaoming";
String resultA [] = str.split(" ");
String resultB [] = str.split(" ", 2);
for(int x = 0; x < resultA.length; x++) {
System.out.println(resultA[x]);
}
for(int x = 0; x < resultB.length; x++) {
System.out.println(resultB[x]);
}
}
}
字符串截取
No. |
方法名称 |
类型 |
描述 |
01 |
public String substring(int beginIndex) |
普通 |
从指定索引截取到结尾 |
02 |
public String substring(int beginIndex, int endIndex) |
普通 |
截取指定索引范围中的子字符串 |
public class StringDemo {
public static void main(String args []) {
String str = "www.baidu.com";
System.out.println(str.substring(4));
System.out.println(str.substring(4, 9));
}
}
字符串格式化
- 对于占位符而言:字符串(%s)、字符(%c)、整数(%d)、小数(%f)
No. |
方法名称 |
类型 |
描述 |
01 |
public static String format(String format, 各种类型 ... args) |
普通 |
根据指定结构进行文本格式化显示 |
public class StringDemo {
public static void main(String args []) {
String name = "张三";
int age = 18;
double score = 98.765321;
String str = String.format("姓名%s、年龄%d、成绩%5.2f", name, age, score);
System.out.println(str);
}
}
其他操作方法
No. |
方法名称 |
类型 |
描述 |
01 |
public String concat(String str) |
普通 |
描述字符串的连接 |
02 |
public String intern() |
普通 |
字符串入池 |
03 |
public String isEmpty() |
普通 |
判断是否为空字符串(不是null) |
04 |
public int length() |
普通 |
计算字符串的长度 |
05 |
public String trim() |
普通 |
去除左右的空格信息 |
06 |
public String toUpperCase() |
普通 |
转大写 |
07 |
public String toLowerCase() |
普通 |
转小写 |
/**
从整体的运行结果来看,strA strB的内容相同
但是最终输出了一个false,证明此操作并没有实现静态的定义
*/
public class StringDemo {
public static void main(String args []) {
String strA = "www.baidu.com";
String strB = "www.".concat("baidu.").concat("com");
System.out.println(strB);
System.out.println(strA == strB); //false
String str = "";
System.out.println(str.isEmpty()); //true
String strC = " hello ";
System.out.println(strC.length()); // 7
System.out.println(strC.trim()); // hello
String strD = "Hello World !!!";
System.out.println(strD.toUpperCase());
System.out.println(strD.toLowerCase());
}
}
//首字母为空格不适用
class StringUtil {
public static String initcap(String str) {
if(str == null || "".equals(str)) {
return str;
}
if(str.length() == 1) {
return str.toUpperCase();
}
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
}
public class StringDemo {
public static void main(String args []) {
System.out.println(StringUtil.initcap("hello"));
System.out.println(StringUtil.initcap("m"));
}
}
网友评论