【问题标题】:show 0 as prefix if value is less than 9如果值小于 9,则显示 0 作为前缀
【发布时间】:2014-05-07 22:06:16
【问题描述】:

我仍然得到如下文件名:

B-13-4-006.jpg

B-5-7-008.jpg

但现在我想显示 0 作为前缀,如果值小于

               "B-" + // prefix
                LoginActivity.strEventID + "-" + // eventID 
                LoginActivity.strOperativeID + "-" + // operativeID 
                getNextNumber() + // counter 
                ".jpg" 

我需要,文件名应如下所示:

B-13-04-006.jpg

B-05-07-008.jpg

【问题讨论】:

标签: java android


【解决方案1】:

由于您似乎有需要(可选)用零填充的 字符串,因此您可以使用 不同的 方法,而不是通常用于填充 整数:

public String addPadding(int length, String text) {
    StringBuilder sb = new StringBuilder();

    // First, add (length - 'length of text') number of '0'
    for (int i = length - text.length(); i > 0; i--) {
        sb.append('0');
    }

    // Next, add string itself
    sb.append(text);
    return sb.toString();
}

所以你可以使用:

"B-" + // prefix
    addPadding(2, LoginActivity.strEventID) + "-" + // eventID 
    addPadding(2, LoginActivity.strOperativeID) + "-" + // operativeID 
    getNextNumber() + // counter 
    ".jpg"

填充字符串还有很多其他可能性,请参阅this question 了解更多详细信息/可能性。

【讨论】:

    【解决方案2】:

    如果小于 10,则使用 String.format("%02d", yournumber); 以数字显示 0(对于两位数)。

    使用类似的方法

    private String getPaddedNumber(int number) {
        return String.format("%02d", number);
    }
    

    您可以阅读Formatter文档了解更多详情。


    如何在你的代码中使用

    "B-" + // prefix
            getPaddedNumber(LoginActivity.strEventID) + "-" + // eventID 
            getPaddedNumber(LoginActivity.strOperativeID) + "-" + // operativeID 
            getPaddedNumber(getNextNumber()) + // counter 
            ".jpg"
    

    【讨论】:

    • pankaj 没有得到如何在我现有的代码中使用它
    • 将你的 ID 传递给他的方法,就是这样。
    • 遇到同样的问题,就像我在自己的代码中尝试您的代码时:CameraLauncherActivity 类型中的方法 getPaddedNumber(int) 不适用于参数(字符串)
    • LoginActivity.strEventID 和其他 2 个变量的类型是什么?他们是字符串
    • 如果它们,那么您可以将它们解析为整数。
    【解决方案3】:

    http://openbook.galileocomputing.de/javainsel/javainsel_04_011.html#dodtp6223d54a-d5d8-4ea7-a487-03f519d21c6b

    只需使用格式化程序。我认为这是最简单最准确的方法

    【讨论】:

      【解决方案4】:
      public static String convert(int n){
          return n < 10 ? "0" + n : "" + n;
      }
      

      【讨论】:

      • Pankaj Kumar 的方法更好。
      猜你喜欢
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-19
      • 1970-01-01
      • 1970-01-01
      • 2018-11-09
      相关资源
      最近更新 更多