- public class CharToString {
- public static void main(String[] args) {
- char[] c = {'a', 'b', 'c', 'd'};
- String s1 = new String(c);
- String s2 = String.valueOf(c);
- if(s1.equals("abcd"))
- System.out.println("char[] to String , success!");
- if(s2.equals("abcd"))
- System.out.println("char[] to String , success!");
- System.out.println(c.toString());
- System.out.println(s1.toString());
- System.out.print(s1);
- System.out.println();
- System.out.print(s2);
- }
- }
- 输出结果:
- char[] to String , success!
- char[] to String , success!
- [C@c17164
- abcd
- abcd
- abcd
char[] 数组转换成String可使用new String(char[]); 或 String.valueOf(char[]); ,在使用swing的JPasswordField组件时,getPassword()得到的就时char数组。
还有char数组调用toString()时,是调用的Object类的toString()方法。如下:
- public String toString() {
- return getClass().getName() + "@" + Integer.toHexString(hashCode());
- }
所以想通过toString转为字符串,得到的结果会让人感到意外。
String类把toString类型重载了,所以自然地得到的便是字符串。
- package com.founder.service.impl;
- import com.founder.service.IUserService;
- public class ToUpp implements IUserService {
- public String uppOrLow(String inputStr) {
- // TODO Auto-generated method stub
- /**
- * 遇到小写全部转换为大写
- */
- char[] cc = inputStr.toCharArray(); //将字符串转换为字符数组
- StringBuffer buff = new StringBuffer();
- for(int i = 0;i< cc.length;i++){
- if(cc[i]>='a'&&cc[i]<='z'){
- buff = buff.append(String.valueOf(cc[i]).toUpperCase());//String.valueOf(boolean b) 将boolean 类型转换为String类型
- }else{
- buff = buff.append(cc[i]);
- }
- }
- return buff.toString();
- }
- }