Java中toString()方法的用法

来源:互联网 发布:python popen c语言 编辑:程序博客网 时间:2024/05/22 13:47

一. toString()概念

Java toString() 方法
此方法有两种格式:

String toString()static String toString(int i)

返回值

toString(): 这将返回表示该整数的值的String对象toString(int i): 这将返回一个表示指定整数的String对象。

例子:

public class Test{    public static void main(String args[]){      Integer x = 5;      System.out.println(x.toString());        System.out.println(Integer.toString(12));    }}/*   5   12*/

toString()方法作用是把你所要显示的内容以字符串的形式显示出来。这里没有经过重载(override)toString()来使用,而是是直接用primative声明的x调用toString()原型。


在博文关于Java的toString用法,JAVA中tostring方法的作用,因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。

它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法回答补充:写这个方法的用途就是为了方便操作,所以在文件操作里面可用可不用例子1:public class A{    public String toString(){return "this is A";}}如果某个方法里面有如下句子:A obj=new A();System.out.println(obj);会得到输出:this is A例子2:public class A{    public String getString(){return "this is A";}//toString改个名字试试看}A obj=new A();System.out.println(obj);会得到输出:xxxx@xxxxxxx的类名加地址形式System.out.println(obj.getString());会得到输出:this is A看出区别了吗,toString的好处是在碰到“println”之类的输出方法时会自动调用,不用显式打出来。

二. toString()用法

在 java toString()用法博文中

1.toString()方法Object类具有一个toString()方法,你创建的每个类都会继承该方法。它返回对象的一个String表示,并且对于调试非常有帮助。然而对于默认的toString()方法往往不能满足需求,需要覆盖这个方法。toString()方法将对象转换为字符串。看以下代码:package sample;class Villain {       private String name;    protected void set(String nm) {       name = nm;    }    public Villain(String name) {       this.name = name;    }    public String toString() {       return "I'm a Villain and my name is " + name;    }}public class Orc extends Villain {    private int orcNumber;    public Orc(String name, int orcNumber) {       super(name);       this.orcNumber = orcNumber;    }    public void change(String name, int orcNumber) {       set(name);       this.orcNumber = orcNumber;    }    public String toString() {       return "Orc" + orcNumber + ":" + super.toString();    }    public static void main(String[] args) {       Orc orc = new Orc("Limburger", 12);       System.out.println(orc);       orc.change("Bob", 19);       System.out.println(orc);    }}结果:sample.Orc@11b86e7sample.Orc@11b86e7如果去掉注释,即加入2个toString()方法后,得到结果:Orc12:I'm a Villain and my name is LimburgerOrc19:I'm a Villain and my name is Bob

2.在容器类中使用toString()编写一个工具类,用于在控制台输出Iterator。import java.util.Iterator;public class Printer {    static void printAll(Iterator e){       while(e.hasNext()){           System.out.println(e.next());       }    }}在Hamster类中重写父类的toString()方法。public class Hamster {    private int hamsterNumber;    public Hamster(int hamsterNumber){       this.hamsterNumber=hamsterNumber;    }    public String toString(){       return "This is Hamster #"+hamsterNumber;    }}在HamsterMaze类中使用容器类加载Hamster类对象并输出结果。import java.util.ArrayList;import java.util.List;public class HamsterMaze {    @SuppressWarnings("unchecked")    public static void main(String[] args){       List list=new ArrayList();       for(int i=0;i<3;i++)           list.add(new Hamster(i));       Printer.printAll(list.iterator());    }}结果:This is Hamster #0This is Hamster #1This is Hamster #2

3.一个实现toString()的通用的Bean在作一个项目时发现,许多bean需要实现toString()方法,就实现一个通用的bean,然后通过其他继承即可。import java.lang.reflect.Field;public class BaseBean {    public String toString() {       StringBuffer sb = new StringBuffer();       try {           Class t = this.getClass();           Field[] fields = t.getDeclaredFields();           for (int i = 0; i < fields.length; i++) {              Field field = fields[i];              field.setAccessible(true);              sb.append("{");              sb.append(field.getName());              sb.append(":");              if (field.getType() == Integer.class) {                  sb.append(field.getInt(this));              } else if (field.getType() == Long.class) {                  sb.append(field.getLong(this));              } else if (field.getType() == Boolean.class) {                  sb.append(field.getBoolean(this));              } else if (field.getType() == char.class) {                  sb.append(field.getChar(this));              } else if (field.getType() == Double.class) {                  sb.append(field.getDouble(this));              } else if (field.getType() == Float.class) {                  sb.append(field.getFloat(this));              } else                  sb.append(field.get(this));              sb.append("}");           }       } catch (Exception e) {           e.printStackTrace();       }       return sb.toString();    }}测试类public class TestBean extends BaseBean {    private int id;    public int getId() {       return id;    }    public void setId(int id) {       this.id = id;    }    public static void main(String[] args) {       TestBean testBean = new TestBean();       testBean.setId(9);       System.out.println(testBean.toString());    }}结果{id:9}public String toString()   返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂。建议所有子类都重写此方法。 Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于: getClass().getName() + '@' + Integer.toHexString(hashCode())
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果x手机下载软件不受信任怎么办 华为畅享7plus主板坏了怎么办 华为手机手机主板坏了没备份怎么办 华为手机一年内主板坏了怎么办 华为手机保修期内主板坏了怎么办 华为手机外置sd卡满了怎么办 红米4充不进去电怎么办 苹果5s锁屏密码忘记了怎么办 华为手机桌面和锁屏自动一样怎么办 苹果手机没电了没带充电器怎么办 华为p8手机后摄像头模糊的怎么办 中兴手机充电的地方坏了怎么办? 小米手机与电脑蓝牙传输失败怎么办 捡个华为收机没有账号密码怎么办 华为手机p9激活码忘了怎么办 华为畅享7plus声音小怎么办 华为畅享7plus忘记密码怎么办 华为畅享8plus卡顿怎么办 华为畅享7plus卡机怎么办 华为畅享8plus图标字小怎么办 华为畅享6反应慢发热怎么办 华为畅享5S反应迟钝怎么办 华为畅玩5x玩王者荣耀卡怎么办 不小心把手机里的照片删了怎么办 u盘文件在手机上删了怎么办 荒野行动透视挂功能加载失败怎么办 白色t桖衫被奶茶弄脏了该怎么办 游戏文件不小心解压到c盘了怎么办 装系统时c盘0mb怎么办 电脑设置的开机密码忘了怎么办 电脑开机密码忘了怎么办xp系统 我的电脑在开机时忘了密码怎么办? xp桌面我的电脑图标不见了怎么办 游戏全屏时卡了无法退到界面怎么办 u盘插电脑上提示有病毒怎么办 三星手机文件怎么删除不掉怎么办 用夜神模拟器玩第五人格太卡怎么办 雷电模拟器玩刺激战场太卡了怎么办 绝地求生刺激战场模拟器太卡怎么办 ddj sb2打碟功能没了怎么办 驼背怎么办 要能快速矫正的方法