精华内容
下载资源
问答
  • 怎么在PHP中利用vsprintf()函数对字符串进行格式化操作发布时间:2021-01-05 16:07:50来源:亿速云阅读:60作者:Leah本篇文章给大家分享的是有关怎么在PHP中利用vsprintf()函数对字符串进行格式化操作,小编觉得挺...

    怎么在PHP中利用vsprintf()函数对字符串进行格式化操作

    发布时间:2021-01-05 16:07:50

    来源:亿速云

    阅读:60

    作者:Leah

    本篇文章给大家分享的是有关怎么在PHP中利用vsprintf()函数对字符串进行格式化操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

    实例

    把格式化字符串写入变量中:<?php

    $number = 9;

    $str = "Beijing";

    $txt = vsprintf("There are %u million bicycles in %s.",array($number,$str));

    echo $txt;

    ?>

    定义和用法

    vsprintf() 函数把格式化字符串写入变量中。

    与 sprintf() 不同,vsprintf() 中的参数位于数组中。数组元素将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入第一个数组元素,在第二个 % 符号处,插入第二个数组元素,依此类推。

    注释:如果 % 符号多于arg参数,则您必须使用占位符。占位符被插入到 % 符号之后,由数字和 "\$" 组成。请参见例子 2。

    语法

    vsprintf(format,argarray)参数描述format必需。规定字符串以及如何格式化其中的变量。可能的格式值:  %%-返回一个百分号%  %b-二进制数  %c-ASCII值对应的字符  %d-包含正负号的十进制数(负数、0、正数)  %e-使用小写的科学计数法(例如1.2e+2)  %E-使用大写的科学计数法(例如1.2E+2)  %u-不包含正负号的十进制数(大于等于0)  %f-浮点数(本地设置)  %F-浮点数(非本地设置)  %g-较短的%e和%f  %G-较短的%E和%f  %o-八进制数  %s-字符串  %x-十六进制数(小写字母)  %X-十六进制数(大写字母)附加的格式值。必需放置在%和字母之间(例如%.2f):  \+(在数字前面加上+或-来定义数字的正负性。默认情况下,只有负数才做标记,正数不做标记)  '(规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。例如:%'x20s(使用"x"作为填充))  \-(左调整变量值)  \[0-9\](规定变量值的最小宽度)  .\[0-9\](规定小数位数或最大字符串长度)注释:如果使用多个上述的格式值,它们必须按照上面的顺序进行使用,不能打乱。

    argarray必需。带有参数的一个数组,这些参数会被插到 format 字符串中的 % 符号处。

    技术细节

    返回值:以格式化字符串的形式返回数组值。PHP 版本:4.1.0+

    更多实例

    例子 1

    使用格式值 %f:<?php

    $num1 = 123;

    $num2 = 456;

    $txt = vsprintf("%f%f",array($num1,$num2));

    echo $txt;

    ?>

    例子 2

    使用占位符:<?php

    $number = 123;

    $txt = vsprintf("有两位小数:%1\$.2f
    没有小数:%1\$u",array($number));

    echo $txt;

    ?>

    例子 3

    使用 sprintf() 来演示所有可能的格式值:<?php

    $num1 = 123456789;

    $num2 = -123456789;

    $char = 50; // ASCII 字符 50 是 2

    // 注释:格式值 "%%" 返回百分号

    echo sprintf("%%b = %b",$num1)."
    "; // 二进制数

    echo sprintf("%%c = %c",$char)."
    "; // ASCII 字符

    echo sprintf("%%d = %d",$num1)."
    "; // 带符号的十进制数

    echo sprintf("%%d = %d",$num2)."
    "; // 带符号的十进制数

    echo sprintf("%%e = %e",$num1)."
    "; // 科学计数法(小写)

    echo sprintf("%%E = %E",$num1)."
    "; // 科学计数法(大写)

    echo sprintf("%%u = %u",$num1)."
    "; // 不带符号的十进制数(正)

    echo sprintf("%%u = %u",$num2)."
    "; // 不带符号的十进制数(负)

    echo sprintf("%%f = %f",$num1)."
    "; // 浮点数(视本地设置)

    echo sprintf("%%F = %F",$num1)."
    "; // 浮点数(不视本地设置)

    echo sprintf("%%g = %g",$num1)."
    "; // 短于 %e 和 %f

    echo sprintf("%%G = %G",$num1)."
    "; // 短于 %E 和 %f

    echo sprintf("%%o = %o",$num1)."
    "; // 八进制数

    echo sprintf("%%s = %s",$num1)."
    "; // 字符串

    echo sprintf("%%x = %x",$num1)."
    "; // 十六进制数(小写)

    echo sprintf("%%X = %X",$num1)."
    "; // 十六进制数(大写)

    echo sprintf("%%+d = %+d",$num1)."
    "; // 符号说明符(正)

    echo sprintf("%%+d = %+d",$num2)."
    "; // 符号说明符(负)

    ?>

    例子 4

    字符串说明符的演示:<?php

    $str1 = "Hello";

    $str2 = "Hello world!";

    echo vsprintf("[%s]",array($str1))."
    ";

    echo vsprintf("[%8s]",array($str1))."
    ";

    echo vsprintf("[%-8s]",array($str1))."
    ";

    echo vsprintf("[%08s]",array($str1))."
    ";

    echo vsprintf("[%'*8s]",array($str1))."
    ";

    echo vsprintf("[%8.8s]",array($str2))."
    ";

    ?>

    以上就是怎么在PHP中利用vsprintf()函数对字符串进行格式化操作,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

    展开全文
  • 正则表达式基础知识: ... 核心代码 public static String ...可要处理的字符串数组进行格式化并用HashSet存储,而后再合并处理后的HashSet遍历处理(对于进行匹配的字符串也要进行同样的去特殊字符处理)

    正则表达式基础知识:
    https://blog.csdn.net/hnhygkx/article/details/82877190

    核心代码

        public static String replace(String str) {
    
            if(str==null){
                return null;
            }else if(StringUtils.isBlank(str)){
                return "";
            }
            String regEx = "[a-zA-Za-zA-Z0-90-9\\u4e00-\\u9fa5]";
            Pattern p = Pattern.compile(regEx);
            Matcher m = p.matcher(str);
            StringBuffer sb = new StringBuffer();
            while (m.find()) {
                sb.append(m.group());
            }
            return sb.toString();
        }
    

    常见应用

    1. 简单的需要去除特殊符号的需求;
    2. 字符串匹配对多个字符串contains、endwith等情形,且要匹配的字符串数量较大且重合度较高时;可对要处理的字符串数组进行格式化并用HashSet存储,而后再对合并处理后的HashSet遍历处理(对于进行匹配的字符串也要进行同样的去特殊字符处理)
    展开全文
  • # :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充 print '{:>8}'.format('3.14') print '{:('3.14') print '{:^8}'.format('3.14') print '{:0>8}'.format('3.14') print '{:a>8}'....
    # 位置参数
    print "{0} is {1} years old".format("Wilber", 28)
    print "{} is {} years old".format("Wilber", 28)
    print "Hi, {0}! {0} is {1} years old".format("Wilber", 28)

    # 关键字参数
    print "{name} is {age} years old".format(name = "Wilber", age = 28)

    # 下标参数
    li = ["Wilber", 28]
    print "{0[0]} is {0[1]} years old".format(li)

    # 填充与对齐
    # ^、<、>分别是居中、左对齐、右对齐,后面带宽度
    # :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
    print '{:>8}'.format('3.14')
    print '{:<8}'.format('3.14')
    print '{:^8}'.format('3.14')
    print '{:0>8}'.format('3.14')
    print '{:a>8}'.format('3.14')

    # 浮点数精度
    print '{:.4f}'.format(3.1415926)
    print '{:0>10.4f}'.format(3.1415926)

    # 进制
    # b、d、o、x分别是二进制、十进制、八进制、十六进制
    print '{:b}'.format(11)
    print '{:d}'.format(11)
    print '{:o}'.format(11)
    print '{:x}'.format(11)
    print '{:#x}'.format(11)
    print '{:#X}'.format(11)

    # 千位分隔符
    print '{:,}'.format(15700000000)
    展开全文
  • 1.整数进行格式化:%[index$][标识][最小宽度]转换方式我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解,就是最终该整数转化的字符串最少包含多少位...

    1.对整数进行格式化:%[index$][标识][最小宽度]转换方式

    我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解,就是最终该整数转化的字符串最少包含多少位数字。我们来看看剩下2个部分的含义吧:

    标识:

    '-'    在最小宽度内左对齐,不可以与“用0填充”同时使用

    '#'    只适用于8进制和16进制,8进制时在结果前面增加一个0,16进制时在结果前面增加0x

    '+'    结果总是包括一个符号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)

    ' '    正值前加空格,负值前加负号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)

    '0'    结果将用零来填充

    ','    只适用于10进制,每3位数字之间用“,”分隔

    '('    若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(同‘+’具有同样的限制)

    转换方式:

    d-十进制   o-八进制   x或X-十六进制        上面的说明过于枯燥,我们来看几个具体的例子。需要特别注意的一点是:大部分标识字符可以同时使用。        System.out.println(String.format("%1$,09d", -3123));

    System.out.println(String.format("%1$9d", -31));

    System.out.println(String.format("%1$-9d", -31));

    System.out.println(String.format("%1$(9d", -31));

    System.out.println(String.format("%1$#9x", 5689));

    //结果为:

    //-0003,123

    //      -31

    //-31

    //     (31)

    //   0x1639

    2.对浮点数进行格式化:%[index$][标识][最少宽度][.精度]转换方式

    我们可以看到,浮点数的转换多了一个“精度”选项,可以控制小数点后面的位数。标识:

    '-'    在最小宽度内左对齐,不可以与“用0填充”同时使用

    '+'    结果总是包括一个符号

    ' '    正值前加空格,负值前加负号

    '0'    结果将用零来填充

    ','    每3位数字之间用“,”分隔(只适用于fgG的转换)

    '('    若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(只适用于eEfgG的转换)

    转换方式:

    'e', 'E' -- 结果被格式化为用计算机科学记数法表示的十进制数

    'f'          -- 结果被格式化为十进制普通表示方式

    'g', 'G'    -- 根据具体情况,自动选择用普通表示方式还是科学计数法方式

    'a', 'A'    --   结果被格式化为带有效位数和指数的十六进制浮点数

    3.对字符进行格式化:

    对字符进行格式化是非常简单的,c表示字符,标识中'-'表示左对齐,其他就没什么了。

    4.对百分比符号进行格式化:

    看了上面的说明,大家会发现百分比符号“%”是特殊格式的一个前缀。那么我们要输入一个百分比符号该怎么办呢?肯定是需要转义字符的,但是要注意的是,在这里转义字符不是“\”,而是“%”。换句话说,下面这条语句可以输出一个“12%”:

    System.out.println(String.format("%1$d%%", 12));

    5.取得平台独立的行分隔符:

    System.getProperty("line.separator")可以取得平台独立的行分隔符,但是用在format中间未免显得过于烦琐了。 于是format函数自带了一个平台独立的行分隔符那就是String.format("%n")。

    6.对日期类型进行格式化:

    以下日期和时间转换的后缀字符是为 't' 和 'T' 转换定义的。这些类型相似于但不完全等同于那些由 GNU date 和 POSIX strftime(3c) 定义的类型。提供其他转换类型是为了访问特定于

    Java 的功能(如将 'L' 用作秒中的毫秒)。  以下转换字符用来格式化时间:  'H'     24 小时制的小时,被格式化为必要时带前导零的两位数,即 00 - 23。  'I'     12 小时制的小时,被格式化为必要时带前导零的两位数,即 01 - 12。  'k'     24 小时制的小时,即 0 - 23。  'l'     12 小时制的小时,即 1 - 12。  'M'     小时中的分钟,被格式化为必要时带前导零的两位数,即 00 - 59。  'S'     分钟中的秒,被格式化为必要时带前导零的两位数,即 00 - 60 ("60" 是支持闰秒所需的一个特殊值)。  'L'     秒中的毫秒,被格式化为必要时带前导零的三位数,即 000 - 999。  'N'     秒中的毫微秒,被格式化为必要时带前导零的九位数,即 000000000 - 999999999。  'p'     特定于语言环境的 上午或下午 标记以小写形式表示,例如 "am" 或 "pm"。使用转换前缀 'T' 可以强行将此输出转换为大写形式。  'z'     相对于 GMT 的 RFC 822 格式的数字时区偏移量,例如 -0800。  'Z'     表示时区缩写形式的字符串。Formatter 的语言环境将取代参数的语言环境(如果有)。  's'     自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的秒数,即 Long.MIN_VALUE/1000 与 Long.MAX_VALUE/1000 之间的差值。  'Q'     自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的毫秒数,即 Long.MIN_VALUE 与 Long.MAX_VALUE 之间的差值。  以下转换字符用来格式化日期:  'B'     特定于语言环境的月份全称,例如 "January" 和 "February"。  'b'     特定于语言环境的月份简称,例如 "Jan" 和 "Feb"。  'h'     与 'b' 相同。  'A'     特定于语言环境的星期几全称,例如 "Sunday" 和 "Monday"  'a'     特定于语言环境的星期几简称,例如 "Sun" 和 "Mon"  'C'     除以 100 的四位数表示的年份,被格式化为必要时带前导零的两位数,即 00 - 99  'Y'     年份,被格式化为必要时带前导零的四位数(至少),例如,0092 等于格里高利历的 92 CE。  'y'     年份的最后两位数,被格式化为必要时带前导零的两位数,即 00 - 99。  'j'     一年中的天数,被格式化为必要时带前导零的三位数,例如,对于格里高利历是 001 - 366。  'm'     月份,被格式化为必要时带前导零的两位数,即 01 - 13。  'd'     一个月中的天数,被格式化为必要时带前导零两位数,即 01 - 31  'e'     一个月中的天数,被格式化为两位数,即 1 - 31。  以下转换字符用于格式化常见的日期/时间组合。  'R'     24 小时制的时间,被格式化为 "%tH:%tM"  'T'     24 小时制的时间,被格式化为 "%tH:%tM:%tS"。  'r'     12 小时制的时间,被格式化为 "%tI:%tM:%tS %Tp"。上午或下午标记 ('%Tp') 的位置可能与语言环境有关。  'D'     日期,被格式化为 "%tm/%td/%ty"。  'F'     ISO 8601 格式的完整日期,被格式化为 "%tY-%tm-%td"。  'c'     日期和时间,被格式化为 "%ta %tb %td %tT %tZ %tY",例如 "Sun Jul 20 16:17:00 EDT 1969"。

    展开全文
  • 早上写了一个小工具类,这JSON串进行格式化输出,代替System.out.printpackage MyTest;/*** 格式化输入工具类** @author lizhgb* @date 2015-10-14* @Modified 2017-04-28**/public final cl...
  • 字符串格式化

    2021-04-29 22:25:26
    可以利用sprintf对字符串进行格式化 sprintf(目标字符串,“格式”,占位参数…); 代码示例: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib.h> //...
  • Android strings.xml 的字符串进行格式化
  • 用JavaJSON字符串进行格式化输出

    千次阅读 2017-01-06 18:21:23
    工作中进行http相关接口测试时经常会收到返回的json...小工具类,这JSON串进行格式化输出。public class JsonFormatUtil { /** * json字符串格式化输出 * @param jsonStr * @return */ public static String
  • Python字符串的格式化处理主要是用来将变量(对象)的值填充到字符串中,在字符串中解析Python表达式,对字符串进行格式化显示(左对齐、右对齐、居中对齐,保留数字有效位数)。那么字符串格式化的方式有哪些呢?% ...
  • 1.整数进行格式化:%[index$][标识][最小宽度]转换方式我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解,就是最终该整数转化的字符串最少包含多少位...
  • 很多时候,我们拿Json字符串作为返回结果,但是当数据量多的时候,一堆的Json字符串看起来很不直观,这时候我们可以使用以下办法将Json字符串格式化一下再输出 var JsonUti = { //定义换行符 n: "\n", //...
  • 字符串格式化形式

    2021-04-15 15:53:31
    # 1、%格式化符 % 是内置的对字符串进行格式化的格式化符,格式化字符串时,将字符串档做一个模板, #模板中包含格式化符,这些格式化符为真是的值预留位置,并说明真实的值具体的格式,然后用一个元祖() #将多个...
  • Python字符串的格式化处理主要是用来将变量(对象)的值填充到字符串中,在字符串中解析Python表达式,对字符串进行格式化显示(左对齐、右对齐、居中对齐,保留数字有效位数)。那么字符串格式化的方式有哪些呢?% ...
  • string.FormatC#字符串格式化String.Format 方法的几种定义:String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。String.Format (String, Object[]) 将指定 ...
  • Python字符串格式化

    2020-12-24 13:45:12
    Python中内置有对字符串进行格式化的操作%。 模板 格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值传递给...
  • JS中json字符串进行格式化

    千次阅读 2019-04-23 09:29:00
    //json字符串进行格式化 //options可以去掉 var formatJson = function (json, options) { var reg = null, formatted = '', pad = 0, PADDING = ' '; // one can also use '\t' o...
  • 使用 {}.format 对字符串进行格式化的**语法格式: { [field_name] ["!" conversion] [":" format_spec] }.format()
  • 谢谢!...Python中内置有对字符串进行格式化的操作%。模板格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一...
  • 将变量(对象)的值填充到字符串中在字符串中解析Python表达式对字符串进行格式化显示左对齐、右对齐、居中对齐保留数字有效位数2.你学过的字符串格式化方式有哪些?% 字符串格式化format字符串格式化F字符串二、% ...
  • 对字符串进行格式化显示 左对齐,右对齐,居中对齐 保留数字有效位数 """ # %字符串格式化操作 name="狗" lover="吃肉" print("%s爱%s" %(name,lover)) # 保留数字有效位数 pi=3.14159265359 print("%.2f" %pi) ...
  • 谢谢!...Python中内置有对字符串进行格式化的操作%。模板格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一...
  • Python字符串的格式化处理主要是用来将变量(对象)的值填充到字符串中,在字符串中解析Python表达式,对字符串进行格式化显示(左对齐、右对齐、居中对齐,保留数字有效位数)。那么字符串格式化的方式有哪些呢?% 字符...
  • 在Python中内置有对字符串进行格式化的操作符是"%"。模板格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,930
精华内容 1,572
关键字:

对字符串进行格式化