问题1:
原程序有点长有点乱,我写一个来表达:class account{
   String name;
   double balance;
   account(String a,double){
      name=a;
      balance=b;
   }
   void print(String str){
      System.out.println(name+str+"  "+balance);
}public class test{
   public static void main(String[] args){
          account obj=new account("Tom",200.0);
          obj.print("交易前:");//<-就是这两个地方,我不知道格式该怎么写
          obj.print("交易后:");//<-意思就是传给print的(String str)
       }                       //  我想知道在一行语句里面完成目的的方法 
}                              //就是不定义一个String变两赋值在把变量写进去
                               //试过New了,但是不会写.到底语法允许这样写不?-----------------------------------------------------------------------
问题2:
还有我想用格式化的输出,想在输出的时候让double 变量 balance显示一位小数
之前我看了几个格式化输入的文章,如下:***********参考文章***************
简单说明: a.格式描述符: 1. L或l - 使数字左对齐(缺省是右对齐) 
2. C或c - 使数字居中对齐(缺省是右对齐) 
3. X或x - 显示数字为十六进制(缺省是十进制) 
4. B或b - 显示数字为八进制(缺省是十进制) 
5. ,(半角逗号)- 千位分隔符 
6. S或s - 显示数字为科学记数法 
7. Z或z - 用零填空位(缺省是空格) 
8. w.d (两个整数用半角句号隔开)- 指定输出域宽及精度 b. "fillChar"是填空位符(缺省为空格) 
--你可以用MyOut.fillChar = '*'或'$'来定义你自己的空位符 
举例: 
println(123.45678, "8.3L") ->; 123.457(左对齐占八位) 
println(123.45678, "10.3cs") ->;  1.235E2 (居中占十位) 
println(1234567, ",10") ->;   1,234,567(右对齐占十位) 
// class MyOut     
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.OutputStreamWriter;
import java.text.DecimalFormat;
import java.text.NumberFormat;*********文章结束*********
我把以上提示的包也引入了
然后我把问题一的print语句写成
void print(){
System.out.println("金额"+balance, ".1L");
   }
解释报错说:
符号: 方法println(java.lang.String,java.lang)
位置: 类 java.io.PrintStream
那就是说我引入的类都没有定义println的这个用法是吧?还是我用错了?
好迷惘啊~~请各位热心人帮助赐教!不胜感激!

解决方案 »

  1.   

    System.out.printf("金额%5.1f", balance);
      

  2.   

    用printf方法才能实现,println方法没有你那种参数组合的
      

  3.   

    jdk1.4/1.5通用方法:
    所有的print()/println()都是最多只能带一个参数,如果你想用他们输出的话,可以用格式化函数java.text.DecimalFormat,先把要输出的数字格式化,然后再输出:
    例如:double d = 12345.6789舍入,那么:
    DecimalFormat ddf = new DecimalFormat("#0.00");//2位小数
    DecimalFormat ddf1 = new DecimalFormat("#0.0");//1位小数
    String result = ddf.format(d);//格式化后是String
    关于他的具体用法可以参照java docs
      

  4.   

    printf()的传参用法和c++里面的printf()一样,只不过只有JDK5.0+才支持。
      

  5.   

    print()/println()不支持>1个参数,也就是你的参数只能是要输出的内容;
    printf(String format, Object... args) 是至少有一个参数:
    double dd = -1234.321;
    System.out.printf("%1$.1f", dd);//要一位小数
    它的用法与C++多了一个位置位,用1$表示后面的第一个对应数,2$表示第二个,以此类推...数字的格式方式和C++一样, .1f表示小数点后面一位小数
    System.out.printf("%1$.1f", dd);//java写法
    printf(("%.1f", dd);//c++写法
      

  6.   

    java的写法位置位可以省略,当省略的时候,和C++
    的就是一样的写法了。
      

  7.   

    void print(String str,String str2){
          System.out.println(name+str+"  "+balance+
                      name+str2+" "+balance);
    }obj.print("交易前:","交易后:");???