课时49:字符串与字符
摘要:本课程主要通过实例演示了如何实现字符串与字符数组的转换,并强调了在处理中文时使用Char类型的重要性。最后,讲解了如何判断字符串中是否全部由数字组成。
1. 方法介绍
2. 字符串与字符的转换
下面我们学习字符串与字符的操作。在JDK1.9之前,所有的String类都是利用字符数组实现了包装的处理,所以在String类中提供有相应的处理转换方法,这些方法包含有构造方法与普通方法两类。
01. 方法介绍
首先从构造开始学习,构造方法中可以找接收字符数组的方法。点击打开查看可知,该方法明确描述该处接收字符数,该方法将传入的字符数组变为字符串。
No. |
方法名称 |
类型 |
作用 |
1 |
public String(char [] value) |
构造 |
将传入的字符数组变为字符串 |
2 |
public String(char[] value, int offset,int count) |
构造 |
将部分字符数组变为字符串。 |
3 |
Public char CharAt(int index) |
普通 |
获取指定索引位置的字符。 |
4 |
public char[] toChar Array() |
普通 |
将字符串中的数据以字符数组的形式返回。 |
以后看到“offset”这个单词时描述的是起点。
范例:现在观察CharAt()方法。
public class stringDemo{ public static void main(string args[]){ String str=www.mldn.cn; char c=str.CharAt(5); System.out.println(c); } }
运行上述代码,结果如图。
结果输出“l”。利用CharAt()方法可以获取指定索引位置的字符,但是程序中的索引下标都是从“0”开始的。
02. 字符串与字符的转换
在程序语言之中,最早一直强调的是字符串应该使用字符数组来进行描述。所以,这一操作在String类方法中也是有所体现的。
范例:实现字符串与字符数组的转换。
public class stringDemo{ public static void main(string args[]){ String str=“helloworld”; char [] result =str. toChar Array(); //将字符串变为字符数组。 for (int x=0;x<result.length;x++){ result[x] -= 32; // 编码减少32。 } //将处理后的字符数组交给String变为字符串。 String newStr= new string(result); System.out.println(newStr); } }
运行上述代码,结果如图。
字母转为大写,代码执行成功。如果不想把全部的字符数组都变成字符串,可以对代码做如下修改:
public class stringDemo{ public static void main(string args[]){ String str=“helloworld”; char [] result =str. toChar Array(); //将字符串变为字符数组。 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(newStr String(result,0,5)); } }
此时输出结果为“HELLO”,只将部分字符变为大写。若现在需要进行做一个验证功能,要求为判断某一个字符串中的数据是否全部由数字所组成。那么此时可以采用如下的思路:
(1) 如果要想判断字符串中的每一位,最好的做法是将字符串变为字符数组。
(2) 可以判断每一个字符是否在数字的范围之内('0’~'9’);
(3) 如果有一位不是数字则表示验证失败。
范例:实现字符串的检查。
Public class StringDemo{ public static void main(string args[]){ String str ="helloworld"; System.out.println(isNumber(str)?"由数字所组成":"不是由数字所组成"); //该方法主要是判断字符串是否由数字所组成 public static baolean 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 ; } }
代码的运行结果如图。
如果继续修改代码:
Public class StringDemo{ public static void main(string args[]){ String str ="helloworld"; System.out.println(isNumber(str)?"由数字所组成":"不是由数字所组成"); System.out.println(isNumber(“123”)?"由数字所组成":"不是由数字所组成"); //该方法主要是判断字符串是否由数字所组成 public static baolean 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 类型,因为其可以包含中文数据,这是使用字符的主要原因。