不管编程语言如何,字符串都是最常用的数据类型之一。字符串可以是硬编码(由开发人员直接指定)或格式化(其中指定了基本框架,并通过合并其他变量的值来获得最终字符串)。格式化字符串可以定义为一组段,其中每个段可能包含一个整数、浮点或甚至另一个字符串。
null
格式化字符串使用格式说明符创建字符串的基本结构。格式说明符是预定义的字符序列,可用于定义要存储或显示的数据类型,以及任何给定值的格式化方式,即精度、填充等。格式说明符通常以百分比符号或“%”开头,后跟定义数据类型和所需格式的字符序列。当在格式上迭代时,如果遇到任何格式说明符,编译器/解释器就会理解存在一个相应的指令,该指令的值将被格式化并使用。 因此,一个字符串可能根本不包含格式说明符,但如果它包含格式说明符,则至少应该重新发送相同数量的指令。在指令过多的情况下,有些语言会忽略不需要的指令,让它在执行时发出警告。
下面简要讨论可以在PHP中指定的格式和数据类型。它们中的每一个都用前面的百分位符号或“%”实现。
格式化值
- 符号说明符 可用于强制显示数字上要使用的符号(-或+)。默认情况下,负数上只显示–符号。使用此说明符,正数用前面的+表示。这可以使用+符号实现,并且只能在数值上实现。实例
%+d // Specify the integer along with it's sign (+ or -).
- 填充说明符 可用于指定将用于将结果填充到任何定义的字符串大小的字符。默认情况下,空格用作填充。可以通过使用单引号或“.”作为前缀来指定备用填充字符。实例
%'0d // Pad with 0s to achieve the right length.
- 对齐说明符 可用于指定结果的对齐方式,即左对齐还是右对齐。默认情况下,它是正确的。使用–字符使其左对齐。实例
%-s // Specifies the alignment as left-justified.
- 宽度说明符 可用于指定结果本身中出现的最小字符数。可以使用表示最小宽度的任何数字来指定。它与填充说明符一起使用最多。实例
// Specifies there should be at least 5 digits, %'05d // if less, then 0s are filled to get the desired result.
- 精度说明符 可用于在处理实数时指定精度。句号或“.”后跟一个可选的十进制数字字符串,该字符串指的是小数点后要显示的十进制数字。 在字符串上使用此说明符时,它指定字符串的最大字符限制。 实例
%.5f // Defines Real Number Precision. %.2s // Maximum Character to be allowed in a string.
数据类型
- %:显示%。不需要任何指令。
- b:该指令指的是一个整数,显示为二进制数。
- c:该指令指的是一个整数,显示为相应的ASCII字符。
- d:该指令指的是一个整数,显示为十进制数。
- e:该指令指的是科学符号(例如2.12e+3)。
- E:E的别名。
- f:该指令指的是一个浮点数,显示为实数(区域设置感知)。
- F:该指令指的是一个浮点数,显示为实数(不区分语言环境)。
- o:该指令指的是一个整数,显示为八进制数。
- s:指令被视为字符串并显示。
- u:该指令指的是一个整数,显示为无符号十进制数。
- x:该指令指的是一个整数,显示为十六进制数(小写字母)。
- X:该指令指的是一个整数,显示为十六进制数(大写字母)。
以下代码说明了不同格式说明符的工作原理:
<?php // PHP program to illustrate Working // of different Format Specifiers // Creating Dummy Variables $numValue = 5; $strValue = "GeeksForGeeks" ; // Using Sign Specifier. printf( "Signed Number: %+d" , $numValue ); // Padding and Width Specifier. printf( "Padding and Width%'03d%'03d" , $numValue , $numValue +10); // Precision Specifier. printf( "Precision: %.5f %.5s" , $numValue , $strValue ); // Different DataTypes. // Integer and Percentile. printf( "Percentage: %d%" , $numValue ); // Binary Octal and Hexadecimal Representation. printf( "Binary: %b Octal: %o Hexadecimal: %x" , $numValue +10, $numValue +10, $numValue +10); // Character Representation. printf( "Character: %c" , $numValue +60); // Strings. printf( "String: %s" , $strValue ); // Real Numbers. printf( "RealNumber: %f" ,1/ $numValue ); // Scientific Numerical Representation. printf( "Scientific Representation:%e" , $numValue +100); ?> |
输出:
Signed Number: +5 Padding and Width 005 015 Precision: 5.00000 Geeks Percentage: 5% Binary: 1111 Octal: 17 Hexadecimal: f Character: A String: GeeksForGeeks RealNumber: 0.200000 Scientific Representation:1.050000e+2
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END