在JDK1.9前,所有的String都利用了字符数组实现了包装的处理,所在在String类里面是提供有相应的转换处理方法的,这些方法包含有构造方法与普通方法两类。
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.mldn.cn" ;
char c = str.charAt(5) ;
System.out.println(c) ;
}
}
利用charAt()是可以获取某一个指定索引位置的字符,但是程序之中的索引下标都是从0开始的。
在程序语言之中,最早一直强调的就是字符串应该使用字符数组进行描述,所以这一操作在String类的方法中也是有所体现的。
范例:实现字符串与字符数组的转换
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 ; // 编码减少32
}
// 将处理后的字符数组交给String变为字符串
String newStr = new String(result) ;
System.out.println(newStr) ;
System.out.println(new String(result,0,5)) ;
}
}
现在假设说要求做一个验证功能,判断某一个字符串中的数据是否全部由数字所组成。那么这个时候可以采用如下思路:
如果要想判断字符串中的每一位最好的做法是将字符串变为字符数组;
可以判断每一个字符是否在数字的范围之内(‘0’~‘9’);
如果有一位不是数字则表示验证失败。
范例:实现字符串的数据检查
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 ;
}
}
在实际开发之中处理中文的时候往往使用char类型,因为其可以包含中文数据。