Topic: 请问怎样把int转为string型,谢谢!

  Print this page

1.请问怎样把int转为string型,谢谢! Copy to clipboard
Posted by: renaldo
Posted on: 2004-09-02 13:16

要求string 为四位数,左边空白的补满零。

例如:

int i=1 ====> string s="0001"

int i=101 ====> string s="0101"

2.Re:请问怎样把int转为string型,谢谢! [Re: renaldo] Copy to clipboard
Posted by: bluedest
Posted on: 2004-09-02 14:03

1.先判断原int 数的长短length,
2.左补齐(4-length)个0
3.在右边用Integer.toString(int)补齐就ok了

3.Re:请问怎样把int转为string型,谢谢! [Re: renaldo] Copy to clipboard
Posted by: yung
Posted on: 2004-09-02 14:13

public class Test {
  public static String zeros = "0000000000000000";
  public static String int2str (int in){
    String ins = Integer.toString(in);
    int len = ins.length();
    if(len >= 4)
    return ins;
    else
    return zeros.substring(4-len) + ins;
  }
  
  public static void main(String[] args) {
    for(int i=0; i<9999; i=i*2){
      System.out.println(int2str(12));
    }
  }
    
}

4.Re:请问怎样把int转为string型,谢谢! [Re: renaldo] Copy to clipboard
Posted by: renaldo
Posted on: 2004-09-02 14:59

哦,谢谢。
看来只能自己写了。
我原以为有现成的函数的。

5.Re:请问怎样把int转为string型,谢谢! [Re: renaldo] Copy to clipboard
Posted by: m00nsun
Posted on: 2004-09-02 16:30

/*=========================================
*  Created :wbb
*  2004-09-02
*  要求string 为六位数,左边空白的补满零。
*  例如:
**  int i=1 ====> string s="000001"
*  int i=101 ====> string s="000101"
*========================================*/

import java.awt.*;
import java.applet.*;

public class CodeId extends Applet{
  TextField t = new TextField(10);
  Button b1 = new Button("转换成编号");
  TextField idt = new TextField(10);
  String s = "";
  
  public void init(){
    addPhone;
    add(b1);
    add(idt);
  }
  
  public boolean action(Event evt, Object arg){
    s = t.getText();
    if (s.length() < 6){
      for(int i = s.length(); i < 6; i++){
        s = "0" + s;  
      }  
    }
    if (evt.target.equals(b1)){
        idt.setTextMoon;
    }
    else{
      return super.action(evt, arg);
    }
    return true;    
  }

}

//<applet code = CodeId.class width = 100 height = 100></applet>

6.Re:请问怎样把int转为string型,谢谢! [Re: renaldo] Copy to clipboard
Posted by: rebirth
Posted on: 2004-09-02 17:19

可以试试这个函数。
/**
* 左边填0函数
* @param str 处理字符串
* @param count 返回的字符串长度
* @return
*/
public static String FullZeroToLeft(String str, int count) {
int len = str.length();
String str1 = "";
for (int i = 0; i < count - len; i++) {
String str2 = str1.concat("0");
str1 = str2;
}
String retStr = str1.concat(str);
return retStr;
}

7.Re:请问怎样把int转为string型,谢谢! [Re: yung] Copy to clipboard
Posted by: yung
Posted on: 2004-09-02 18:18

yung wrote:
public class Test {
  public static String zeros = "0000000000000000";
  public static String int2str (int in){
    String ins = Integer.toString(in);
    int len = ins.length();
    if(len >= 4)
    return ins;
    else
    return zeros.substring(4-len) + ins;
  }
  
  public static void main(String[] args) {
    for(int i=0; i<9999; i=i*2){
      System.out.println(int2str(12));
    }
  }
    
}


这个速度最快的

8.Re:请问怎样把int转为string型,谢谢! [Re: renaldo] Copy to clipboard
Posted by: Biubiu
Posted on: 2004-09-02 18:59

看到你们这么糟蹋Java,我是在是受不了了!


import java.text.DecimalFormat;

public class ToNewbie {
public static void main( String[] args ) {
DecimalFormat df = new DecimalFormat( "0000" );
System.out.println( df.format( 1 ) );
System.out.println( df.format( 101 ) );
}
}

9.Re:请问怎样把int转为string型,谢谢! [Re: renaldo] Copy to clipboard
Posted by: href
Posted on: 2004-09-03 10:09

学到了,真的很少关注java.text包,疏忽了。

10.Re:请问怎样把int转为string型,谢谢! [Re: renaldo] Copy to clipboard
Posted by: renaldo
Posted on: 2004-09-03 11:31

谢谢 Biubiu
你的解答就是我想要得!

11.Re:请问怎样把int转为string型,谢谢! [Re: Biubiu] Copy to clipboard
Posted by: why
Posted on: 2004-09-04 03:42

Biubiu wrote:
看到你们这么糟蹋Java,我是在是受不了了!

痛快!
虽然敝人不是J2SE版的版主,但也得越俎代庖,打一分。

希望Biubiu元老多点受不了,指点後进!Smile

12.Re:请问怎样把int转为string型,谢谢! [Re: Biubiu] Copy to clipboard
Posted by: yung
Posted on: 2004-09-04 15:25

Biubiu wrote:
看到你们这么糟蹋Java,我是在是受不了了!


import java.text.DecimalFormat;

public class ToNewbie {
public static void main( String[] args ) {
DecimalFormat df = new DecimalFormat( "0000" );
System.out.println( df.format( 1 ) );
System.out.println( df.format( 101 ) );
}
}



为什么说糟踏 java 呢?如果用你的方法写报表软件,就知道速度高下了。难道说使用 java API 就一定是好程序吗? 不见得吧,有很多 API 堪称垃圾吆。

13.Re:请问怎样把int转为string型,谢谢! [Re: yung] Copy to clipboard
Posted by: why
Posted on: 2004-09-04 18:59

yung wrote:
为什么说糟踏 java 呢?如果用你的方法写报表软件,就知道速度高下了。难道说使用 java API 就一定是好程序吗? 不见得吧,有很多 API 堪称垃圾吆。

也许用阁下的方法会比可能没有optimized的Text API快两三倍甚至十倍,但“后遗症”不少。
例如……阁下说到写报表软件,就说现在格“转换格式改为"0,000,000,000",怎样办呢?
开发成本如何呢?

用 Java API 不一定是好程序,但差不多可以肯定是较易开发维护的程序。
噫──最近敝人废话实在太多了。Embaressed

14.Re:请问怎样把int转为string型,谢谢! [Re: renaldo] Copy to clipboard
Posted by: why
Posted on: 2004-09-04 22:56

敝人不务正业,看看 int2str 有多快。
简单的测试是 DecimalFormat 的三倍左右。
不过用了 substring 自然会慢,果然,0位越多,速度越接近,处理八个0 ("00000000") 时不到 DF 的 1.4倍。
又,用 StringBuffer 改写 rebirth 的 fillZeroToLeft 会比 int2str 快。
  public static String zeros = "0000000000000000";
public static String int2str (int in, int sz){
String ins = Integer.toString(in);
int len = ins.length();
if(len >= sz)
return ins;
else
return zeros.substring(sz-len) + ins;
}

public static String fillZeroToLeft(int in, int sz) {
String ins = Integer.toString(in);
int len = ins.length();
if(len >= sz)
return ins;
else {
StringBuffer sb = new StringBuffer(); // 16 chars should be enough
for (int i = 0; i < sz - len; i++) {
sb.append("0");
}
return (sb.append(ins).toString());
}
}

这样编程,或许未至糟蹋Java,但依敝人愚见:绝不可取。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923