[英]Java Format string to C#
不懂Java的语法。 如何将"%6d %7.1f %5.1f"
转换为等效的 C#?
我一直在 C# 中打印出这个: %6d %7.1f %5.1f
试过:
"{0:d6} {7:1f} {5:1f}"
但是,遇到了异常。
例外:
Unhandled Exception: System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
at System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args)
at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)
at System.String.Format(String format, Object arg0, Object arg1, Object arg2)
at experiment.Main(String[] args)
Java代码:
String.format("%6d %7.1f %5.1f", int, double, double/double);
很明显将根据可变数据类型生成什么值。
编辑:我刚刚看过, 将这行 Java 代码转换为 C# 代码
C#
String.Format("{0:x2}", arrayOfByte[i]);
Java
String.format("%02x", arrayOfByte[i]);
请。 请。 请。 不要关闭它。 亲切地。 请。
注意:基于(希望)更好地理解 Java 格式说明符,完全重写了我的原始答案。
根据我(谷歌有限的理解), %6d
, %7.1f
和%5.1f
对应于以下内容:
您可以使用 C# 的 String.Format 来完成此操作,如下所示:
var newString = String.Format("{0,6:d} {1,7:f1}, {2,5:f1}", 605, 20.5, 8.22);
这将导致以下字符串:
" 605 20.5 8.22"
每个占位符组(由{
和}
定义)中的第一个数字对应于在字符串之后传入的参数:
之后,
第二个数字是指字符串的长度(包括小数点和小数部分)。
:
之后的字母和数字是格式说明符。
生成上面的字符串,如下所示:
正如我之前所说,查看String.Format和Standard Numeric Format Strings以获取更多信息。
从C#开始 6.可以使用插值。 对于您的情况,您可能想尝试以下操作:
string formattedString = $"{0:d6} {7.1:f} {5.1:f}";
在 C# 6 之前您可以尝试以下操作:
string formattedString = String.Format("{0:d6} {1:f} {2:f}", 0, 7.1, 5.1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.