相关疑难解决方法(0)

使用格式化程序用0填充字符串

我知道我可以填充空格:

String.format("%6s", "abc"); // ___abc ( three spaces before abc
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到如何生产:

000abc
Run Code Online (Sandbox Code Playgroud)

编辑:

%06s先问过这个问题.只是在更多(未经验证的)答案出现之前让你知道.

目前我有:String.format("%6s", data ).replace(' ', '0' ) 但我认为必须存在更好的方法.

java formatter

5
推荐指数
2
解决办法
2440
查看次数

用零填充字符串的更好方法

这就是我用零填充字符串的方法:

String.format("%16s", cardTypeString.trim()).replace(' ', '0');
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?我不喜欢这.replace(' ', '0')部分.

java string

5
推荐指数
2
解决办法
2447
查看次数

在它前面具有零的整数是什么意思,我该如何打印它?

class test{
  public static void main(String args[]){
     int a = 011;
     System.out.println(a);
  }
}
Run Code Online (Sandbox Code Playgroud)

为什么我得到9输出而不是011

我怎样才能获得011输出?

java int zero println output

4
推荐指数
1
解决办法
6124
查看次数

在Java中转换MySQL日期格式

我是第一次在这里接触Java,所以请放轻松。我必须更正别人的旧代码。这个Java程序从MySQL表中获取数据,并准备将其显示在网页上。我发现他们的MySQL表出于某种原因在所有日期中都使用了INT字段。因此,例如,今天的日期存储为INT3222017。我首先必须向MySQL表中添加适当的DATE列。接下来,我重新设置另一个Java脚本,以从该脚本将使用的MySQL表的更大表中提取数据。

现在,我需要更改当前将INT字段格式化为MM / dd / yyyy的代码,以采用DATE字段(存储为yyyy-MM-dd)并将它们转换为相同的MM / dd / yyyy。

这是一段在INT字段上使用dateFormat函数的代码-

String formattedDate = "";

            formattedDate = dateFormat(oneSpectro.getSpectroLastDate());
            result.setSpectroLastDate(formattedDate);

            formattedDate = dateFormat(oneSpectro.getSpectroOrigDate());
            result.setSpectroOrigDate(formattedDate);

            formattedDate = dateFormat(oneSpectro.getSpectroCalDate());
            result.setSpectroCalDate(formattedDate);
            }

        return result;
    }
Run Code Online (Sandbox Code Playgroud)

这是dateFormat函数-

public String dateFormat(int theDate){
        String      dateString = "";
        Integer     dateInt = 0;

        if (theDate < 10000000){
            dateInt = new Integer(theDate);
            dateString = dateInt.toString();
            // Add preceding 0 to make the date 8 digits in length.
            dateString  = "0" + dateString;

        }
        else {
            // Process an 8 digit …
Run Code Online (Sandbox Code Playgroud)

java mysql date

4
推荐指数
1
解决办法
4524
查看次数

将Java中的数字填充到一定数量的数字的最快方法

我试图根据DB生成的序列号(Y)创建一个经过良好优化的代码位来创建长度为X位的数字(其中X是从运行时属性文件中读取的),然后使用一个文件夹保存文件时的-name.

到目前为止,我已经提出了三个想法,其中最快的是最后一个,但我很欣赏人们可能对此提出的任何建议......

1)实例化具有初始容量X的StringBuilder.追加Y.当长度<X时,在零位置插入零.

2)实例化具有初始容量X的StringBuilder.当长度<X时,追加零.根据StringBuilder值创建DecimalFormat,然后在需要时格式化数字.

3)创建Math.pow(10,X)的新int并添加Y.对新数字使用String.valueOf(),然后对其进行子串(1).

第二个显然可以分为外环和内环部分.

那么,有什么提示吗?使用10,000次迭代的for循环,我从前两个获得类似的时序,第三个方法大约快十倍.这看起来是否正确?

完整的测试方法代码如下......

    // Setup test variables
    int numDigits = 9;
    int testNumber = 724;
    int numIterations = 10000;
    String folderHolder = null;
    DecimalFormat outputFormat = new DecimalFormat( "#,##0" );

    // StringBuilder test
    long before = System.nanoTime();
    for ( int i = 0; i < numIterations; i++ )
    {
        StringBuilder sb = new StringBuilder( numDigits );
        sb.append( testNumber );
        while ( sb.length() < numDigits )
        {
            sb.insert( 0, 0 );
        }

        folderHolder = sb.toString();
    } …
Run Code Online (Sandbox Code Playgroud)

java performance stringbuilder substring digits

2
推荐指数
1
解决办法
3317
查看次数

在java中生成序列号

我想生成一个从00000001,00000002开始的序列号....(我也需要所有这些零)请帮帮我..谢谢提前..

java

2
推荐指数
1
解决办法
2万
查看次数

Java生成String的所有可能排列

我知道这个问题已被多次询问,但我正在寻找一种非常快速的算法来生成长度为8的字符串的所有排列.我试图生成一个长度为8的字符串,其中字符串中的每个字符都可以是任意字符串字符0-9或az(总共36个选项).目前,这是我必须执行的代码:

for(idx[2] = 0; idx[2] < ch1.length; idx[2]++)
for(idx[3] = 0; idx[3] < ch1.length; idx[3]++)
    for(idx[4] = 0; idx[4] < ch1.length; idx[4]++)
        for(idx[5] = 0; idx[5] < ch1.length; idx[5]++)
            for(idx[6] = 0; idx[6] < ch1.length; idx[6]++)
                for(idx[7] = 0; idx[7] < ch1.length; idx[7]++)
                    for(idx[8] = 0; idx[8] < ch1.length; idx[8]++)
                        for(idx[9] = 0; idx[9] < ch1.length; idx[9]++) 
                            String name = String.format("%c%c%c%c%c%c%c%c%c%c",ch1[idx[0]],ch2[idx[1]],ch3[idx[2]],ch4[idx[3]],ch5[idx[4]],ch6[idx[5]],ch7[idx[6]],ch8[idx[7]],ch9[idx[8]],ch10[idx[9]]);
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这段代码无论如何都不是很漂亮.此外,此代码每秒可生成280,000个字符串.我正在寻找一种比这更快的算法.

我尝试了一种递归方法,但这似乎比这种方法运行得慢.建议?

java string permutation

2
推荐指数
1
解决办法
2436
查看次数

增量后将整数零填充为字符串

我需要增加一个只有数字的字符串:

String current = "000433"; //After increment, will be "000434"
Run Code Online (Sandbox Code Playgroud)

我有这个程序,它正常工作:

private String incrementOne(String numberAsString) {
    int leftZeroCount = countLeadingZeros(numberAsString);
    Integer asInteger = Integer.parseInt(numberAsString);
    asInteger++;
    return parseStringWithNZeros(asInteger, leftZeroCount);
}

private String parseStringWithNZeros(Integer asInteger, int leftZeroCount) {
    String asString = Integer.toString(asInteger);
    for (int i = 0; i < leftZeroCount; i++)
        asString = "0" + asString;
    return asString;
}

private int countLeadingZeros(String numberAsString) {
    int count = 0;
    int i = 0;
    while (numberAsString.charAt(i) == '0' && i < numberAsString.length()) {
        count++; …
Run Code Online (Sandbox Code Playgroud)

java

2
推荐指数
1
解决办法
1581
查看次数

在Java中从数组中删除项目

这有什么不对?我想从数组中删除一个项目,但它显示了我

错误ArrayIndexOutBound异常

public class delete {

    public static void main(String[]args) {
        int i;

        //delete  item from array
        int k[] = new int[]{77,99,44,11,00,55,66,33,10};

        //delete 55
        int searchkey=55;

        int nums=k.length;
        for ( i=0;i<nums;i++)
            if (k[i]==searchkey)
                break;

        for (int t=i;t<nums;t++)
            k[t]=k[t+1];
        nums--;

        for (int m=0;m<nums;m++) {
            System.out.println(k[m]);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java arrays algorithm

1
推荐指数
1
解决办法
8923
查看次数

Java - 为什么在从文件中读取时跳过零

为什么我的程序在从文件中读取时会忽略零?例如,以下是文件中的数字:

0001 0011 0010
Run Code Online (Sandbox Code Playgroud)

那么这是我的输出:

1
11
10
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

    File file = new File("num.txt");
    Scanner scanner = new Scanner(file);
    while (scanner.hasNext()) {
        if (scanner.hasNextInt()) {
            System.out.println(scanner.nextInt());
        } else {
            scanner.next();
        }
    }
Run Code Online (Sandbox Code Playgroud)

java file

1
推荐指数
1
解决办法
108
查看次数