Julia 中的字符串格式化
Julia 是由麻省理工学院人员开发的高级语言。它是一种开源的高性能语言。它具有类似于Python的简单语法,但具有 C 的速度和性能。
字符串格式化是使用字符串插值(在已知值之间填充未知值)评估字符串字面量的过程,它产生的结果是占位符被替换为其对应的值。
例如:
word="article"
@printf("This is an %s",word)
上面的代码将 '%s' 替换为 word 的值,输出将是:
This is an article
大多数当前语言还提供不同类型的格式说明符和不同的格式化函数。在 Julia 中,有一些类似于 C 的格式说明符:
- %c:单个字符(字母、数字、特殊符号)
- %s:字符串(字符的组合)
- %d:整数(任何整数(不是分数))
- %f:浮点数(具有浮点小数点的数字)
- %.nf:浮点数限制为 n 位小数
- %e:浮点数的科学表示
在 Julia 中有两种格式化字符串的方法。
方法一:使用 Printf 库
Printf 是 Julia 中的一个标准库,包含以下语法:
using Printf
Julia 使用类似于 C 的 printf()函数来格式化字符串。在这里,我们使用宏@printf进行打印。
打印不同的数据类型
字符:在下面的代码中,我们在名为“字符”的变量中存储了一个字母“c”。然后使用 '%c' 格式说明符打印字符变量,因为它的数据类型是 char。为了使说明符功能更易于理解,使用了具有相同数据类型(字符)的另一个变量“character2”。
Julia
using printf
character = 'c';
@printf("the letter is %c", character);
character2 = 'a';
@printf("the two letters are %c and %c",
character, character2);
Julia
# Loading Library
using Printf
# Creating String
s = "GeeksforGeeks";
# Formatting first string
@printf("welcome to %s", s);
# Creating second string
s2 = "I love";
# Formatting both strings
@printf("%s %s", s2, s);
Julia
using Printf
integer = 33;
@printf("the value is %d",integer);
integer2 = 42;
@printf("the sum is %d + %d = %d",
integer, integer2,
integer + integer2);
Julia
using Printf
floatvalue = 0.08;
@printf("the floating point value is %f",
floatvalue);
floatvalue2 = 1.92;
@printf("the value of %f + %f = %d",
floatvalue, floatvalue2,
floatvalue + floatvalue2);
Julia
using Printf
floatvalue = 20.3658;
@printf("the value of float restricted to 2 decimal places %.2f",
floatvalue);
Julia
using Printf
floatvalue = 20.3658;
@printf("scientific representation of the floatvalue is %e",
floatvalue);
Julia
using Formatting
# to print a string
site = "GeeksforGeeks";
printfmt("Welcome to {:s}", site)
# to print a single character
c = 'a';
printfmt("Character is {:c}", c)
# to print an integer
num = 40;
printfmt("Integer is {:d}", num)
# to print a float value
floatnum = 178.33987;
printfmt("Float value is {:f}", floatnum)
# to print a float value
# restricted to 2 decimal places
printfmt("Restricted to 2 decimal places {:.2f}",
floatnum)
# to print a float value
# in scientific representation
printfmt("Scientific representation {:e}",
floatnum)
在输出中,可以清楚地看到 %c 被替换为第一个 printf 语句中的字符变量的值,而 %c 都被替换为第二个 printf 语句中的字符和 character2 的值。
字符串:在以下示例中,字符串“GeeksforGeeks”存储在变量“s”中,并使用“%s”说明符和 printf 打印。为了使这段代码更容易理解,添加了另一个字符串S2,其值为“我爱”,两个字符串一起打印,使其成为“我爱 GeeksforGeeks”。
朱莉娅
# Loading Library
using Printf
# Creating String
s = "GeeksforGeeks";
# Formatting first string
@printf("welcome to %s", s);
# Creating second string
s2 = "I love";
# Formatting both strings
@printf("%s %s", s2, s);
在输出中,您可以看到在第一个 printf 语句中 %s 是如何被 s 的值替换的。同样,在第二个 printf 语句中,%s 都被 s2 和 s 替换。
整数:在下面的代码中,我们定义了一个名为 integer 的变量为 33。然后我们使用 '%d' 说明符打印它。同样,我们又定义了一个变量 integer2 并将其值设置为 42。在第二个 printf 语句中,我们打印了这两个数字的总和。
朱莉娅
using Printf
integer = 33;
@printf("the value is %d",integer);
integer2 = 42;
@printf("the sum is %d + %d = %d",
integer, integer2,
integer + integer2);
在输出中,查看如何将 '%d' 替换为第一个 printf 语句中的整数值。并且,在第二个 printf 语句中,%d、%d 和 %d 被替换为 integer、integer2 和 integer+integer2。
Float:在下面的代码中,我们声明了一个变量“floatvalue”并将其设置为 0.08。然后我们使用 '%f' 说明符打印了这个值。然后我们再初始化一个变量'floatvalue2'并将其设置为1.92。在第二个 printf 语句中,我们使用说明符“%d”和“%f”打印了这两个值的总和。
朱莉娅
using Printf
floatvalue = 0.08;
@printf("the floating point value is %f",
floatvalue);
floatvalue2 = 1.92;
@printf("the value of %f + %f = %d",
floatvalue, floatvalue2,
floatvalue + floatvalue2);
您可以看到在第一个输出中 %f 如何被替换为 0.08,而 %f、%f 和 %d 分别被替换为 0.08、1.92 和 2。 (注意我们如何使用 '%d' 打印这个总和并获得总和的整数值,如果你想获得 sum 的浮点值,你可以使用 '%f' 说明符。)
浮点值限制为小数点后 2 位:假设我们有 pi 的值并且我们想要显示它,但是我们不想显示它的整个值,我们只想打印值“3.14”,即该值应该限制为小数点后 2 位地方。为此,我们使用 %.nf(n 是限制)。
朱莉娅
using Printf
floatvalue = 20.3658;
@printf("the value of float restricted to 2 decimal places %.2f",
floatvalue);
在此输出中,您可以看到 20.3658 如何打印为 20.37,因为它被四舍五入到小数点后 2 位。
浮点数的科学表示:您可以使用 '%e' 说明符打印出浮点数的科学表示。它通常用于表示非常大或非常小的数字。
朱莉娅
using Printf
floatvalue = 20.3658;
@printf("scientific representation of the floatvalue is %e",
floatvalue);
在此输出中,请注意 'floatvalue' (20.3658) 如何显示为 2.063580e+01。发生这种情况是因为我们使用了 '%e' 说明符并打印出它的科学表示。
方法二:使用Formatting.jl包
Formatting.jl 是一个开源 Julia 包,旨在为 Julia 提供类似Python的格式。这个包在 Github Formatting.jl 上可用。
Installation Command - Pkg.add("Formatting")
我们可以使用 printfmt 或 printfmtln 进行格式化打印。此外,“fmt”和“format”可用于格式化字符串值。
示例:打印不同的数据类型
在此方法中,格式化的完成与Python中的类似。格式说明符放在花括号{}内,“ %”符号被替换为“:” (查看下面的代码)。
朱莉娅
using Formatting
# to print a string
site = "GeeksforGeeks";
printfmt("Welcome to {:s}", site)
# to print a single character
c = 'a';
printfmt("Character is {:c}", c)
# to print an integer
num = 40;
printfmt("Integer is {:d}", num)
# to print a float value
floatnum = 178.33987;
printfmt("Float value is {:f}", floatnum)
# to print a float value
# restricted to 2 decimal places
printfmt("Restricted to 2 decimal places {:.2f}",
floatnum)
# to print a float value
# in scientific representation
printfmt("Scientific representation {:e}",
floatnum)
输出
在输出中,您可以看到 {:c}、{:s}、{:d}、{:f}、{:e}、{:.2f} 是如何替换为字符、字符串、整数、浮点数的点数、科学表示法和浮点数分别限制为小数点后 2 位。