笑谈字符串与字符、字节数组的关系 | 带你学《Java面向对象编程》之三十一

简介: 本节主要为读者介绍了Java为开发者提供的一些用于进行字符串与字符、字节数组之间相互转换的基本方法。

上一篇:Java世界入口:主方法分析 | 带你学《Java面向对象编程》之三十
【本节目标】
通过阅读本节内容,你将学习到String字符串与字符、字节数组之间转换的方法,并对字符串的相关操作有进一步的掌握。

字符串与字符数组

在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) ;
   }     //输出l     
}

利用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) ;         //HELLOWORLD
     System.out.println(new String(result , 0, 5)) ;     //HELLO
   }         
}

现在假设说要求做一个验证功能,判断某一个字符串中的数据是否全部由数字所组成。那么这个时候可以采用如下的思路:

  • 如果要想判断字符串中的每一位最好的做法是将字符串变为字符数组;
  • 可以判断每一个字符是否在数字的范围之内(’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类型,因为其可以包含中文数据。

字符串与字节数组

字符串与字节数组之间也可以实现转换的处理操作,但是需要提醒一下,当进行了字符串与字节转换时,其主要目的是为了进行二进制的数据传输,或者是进行编码转换。

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 普通 编码转换

范例:观察字节与字符串的转换

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)) ;       //执行结果:HELLOWORLD
       System.out.println(new String(data , 0 ,5)) ;   //执行结果:HELLO
   }      
}

字节本身是有长度限制的,一个字节最多可以保存的范围是:-128~127之间。
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:教你成为字符串连连看高手 | 带你学《Java面向对象编程》之三十二
更多Java面向对象编程文章查看此处

相关文章
|
10天前
|
Java
Java 字符串分割split空字符串丢失解决方案
Java 字符串分割split空字符串丢失解决方案
|
14天前
|
安全 Java 数据安全/隐私保护
|
1月前
|
存储 Java
JAVA字符串与其他类型数据的转换
JAVA字符串与其他类型数据的转换
27 4
|
18天前
|
SQL Java 数据库连接
Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
11 0
|
20天前
|
Java
java 8 数组转字符串并以逗号分隔
java 8 数组转字符串并以逗号分隔
11 0
|
26天前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
90 3
|
29天前
|
SQL Java
使用java中的String类操作复杂的字符串
使用java中的String类操作复杂的字符串
9 0
|
29天前
|
Java
使用java将字符串写入到指定的文件中
使用java将字符串写入到指定的文件中
11 0
|
29天前
|
Java 索引
Java字符串
Java字符串
7 0
|
29天前
|
Java
Java面向对象编程
Java面向对象编程