【问题标题】:How to do String formatting on String variable whose value spans multiple lines?如何对值跨越多行的字符串变量进行字符串格式化?
【发布时间】:2015-09-24 09:20:10
【问题描述】:

我使用for循环将多个字符串变量值存储在一个字符串变量中,如下所示

String arr[]={"value1","value2","value3","value4"};
String temp="";
for(int i=0;i<arr.length;i++)
{
    temp=temp+arr[i]+"\n";
}

当我在 temp 上进行字符串格式化时

String formattemp=String.format("%30s",temp);
System.out.println(formattemp);

输出是:

  value1
value2
value3
value4

这是因为我认为临时变量有 28 个字符,包括行尾 因此输出被填充到左边

但我想将输出显示为:

  value1
  value2
  value3
  value4

我该怎么做? 谁能帮我解决这个问题

谢谢

【问题讨论】:

  • 试试System.out.println(formattemp.trim());`
  • 请正确格式化您的问题并添加正确的代码 sn-p
  • 我不明白您要做什么,因为您的一半代码似乎丢失了,而且两个输出在我看来完全一样。
  • 我会编辑问题并让您知道
  • 为什么不在循环内执行System.out.printf("%30s%n", arr[i])

标签: java


【解决方案1】:

试试这个

String arr[]={"value1","value2","value3","value4"};

    for (String temp : arr) {
    System.out.printf ("%30s%n", temp);

}

for ( String s : array) 可用于循环整个数组,为存储在数组中的每个元素执行for loop 内的代码。它也可以做你想做的,它将数组中的值转换为字符串。

在我看来,将数组转换为字符串然后打印它是一种低效的设计

【讨论】:

  • 您好法律,实际上当我在字符串变量中获取值时,它的值跨越多行。我不想在数组上这样做,因为在我的原始程序中没有 for 循环。有这个字符串变量包含与“temp”变量相同的值
  • 从该字符串打印的一行应该多长时间?您可以使用String formattemp = temp.subString(int beginIndex, int endIndex) 从原始字符串创建新字符串并将其打印在行上并在while 内循环,直到到达原始字符串的末尾
猜你喜欢
  • 2011-02-06
  • 2020-07-10
  • 2020-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-30
  • 2015-07-06
  • 2018-11-09
相关资源
最近更新 更多