【问题标题】:want to solve this simple one in java for each loop想在java中为每个循环解决这个简单的问题
【发布时间】:2014-12-23 04:19:50
【问题描述】:
 for (float f: values)
    {
        int a=(int) (f*255);
        builder.append(' ')
               .append(a+",");
    }

values 是浮点类型的数组 builder 在每次调用时都是 StringBuilder 类型 我在 values 数组中有 3 个浮点值 我试图将 'a' 附加到 builder 和 ',' 这里我得到的是 (255,145,234,) 但是我想要的是这样的(255,145,234)我想省略最后一个逗号你的帮助对我很有帮助谢谢。

【问题讨论】:

标签: java


【解决方案1】:

试试这个:

String delimiter = "";
for (float f: values)
    {
        builder.append(delimiter)
        delimiter = ", ";
        int a=(int) (f*255);
        builder.append(a);
    }

或者,只需在循环退出后从StringBuilder 中删除最后一个字符:

builder.setLength(builder.length() - 1);

【讨论】:

    【解决方案2】:

    维护一个count,并追加",",直到count小于数组长度。

    public static void main(String[] args) {
    
            float[] values = { 255, 145, 234 };
            StringBuilder builder = new StringBuilder();
            int count = 0;
    
            for (float f : values) {
                count++;
                int a = (int) (f * 255);
                builder.append(' ').append(a);
                if (count < values.length) {
                    builder.append(",");
                }
            }
            System.out.println(builder.toString());
        }
    

    输出

     65025, 36975, 59670
    

    【讨论】:

      【解决方案3】:

      使用这个。但是这里没有使用StringBuilder..

          ArrayList<String> val = new ArrayList<>();
          for(float f: values){
              val.add((int)(f*255)+"");
          }
          String s = String.join(", ", val);
          System.out.println(s);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-28
        • 2019-02-23
        • 2021-07-28
        • 1970-01-01
        • 1970-01-01
        • 2013-11-11
        • 1970-01-01
        相关资源
        最近更新 更多