[C#][Chaîne formatée] Chaîne de formatage composée et interpolation de chaîne à l'aide de $ | Comment formater la chaîne de sortie

Sortie au format composite

string name = "Fred";
String.Format("Name = {0}, hours = {1:hh}", name, DateTime.Now);

Plusieurs éléments de format peuvent faire référence au même élément dans la liste d'objets en spécifiant le même spécificateur d'argument. Par exemple, en spécifiant une chaîne de format composé telle que "0x{0:X} {0:E} {0:N}", la même valeur peut être formatée en notation hexadécimale, scientifique et numérique, comme suit L'exemple montre :

string multiple = String.Format("0x{0:X} {0:E} {0:N}",
                                Int64.MaxValue);
Console.WriteLine(multiple);
// The example displays the following output:
//      0x7FFFFFFFFFFFFFFF 9.223372E+018 9,223,372,036,854,775,807.00

D ou d nombre décimal

Console.Write("{0:D5}", 25);   //00025  

E ou e scientifique

Console.Write("{0:E}", 250000);   //2.500000E+005  

F ou f flotteur

Console.Write("{0:F2}", 25);   //25.00  
Console.Write("{0:F0}", 25);   //25  

N ou n chiffres

Console.Write("{0:N}", 2500000);   //2,500,000.00  

X ou x hexadécimal

Console.Write("{0:X}", 250);  

Peut être utilisé pour afficher l'heure, par exemple :

int hour = 7;
int minutes = 59;
int seconds = 3;

string timeString = string.Format("{0:00}:{1:00}:{2:00}", hour, minutes, seconds);
Debug.Log(timeString); // 输出:07:59:03

chaîne interpolée $

Le caractère spécial $ identifie un littéral de chaîne comme une chaîne interpolée. Les chaînes interpolées sont des littéraux de chaîne qui peuvent contenir des expressions interpolées. Lors de l'analyse d'une chaîne interpolée dans une chaîne de résultat, les éléments avec des expressions interpolées sont remplacés par la représentation sous forme de chaîne du résultat de l'expression.

string name = "Mark";
var date = DateTime.Now;

// 复合格式:
Console.WriteLine("Hello, {0}! Today is {1}, it's {2:HH:mm} now.", name, date.DayOfWeek, date);
// 字符串内插:
Console.WriteLine($"Hello, {
      
      name}! Today is {
      
      date.DayOfWeek}, it's {
      
      date:HH:mm} now.");
// 两者输出完全相同,如下:
// Hello, Mark! Today is Wednesday, it's 19:40 now.

format facultatif

{
    
    <interpolationExpression>[,<alignment>][:<formatString>]}

comme

Console.WriteLine($"|{
      
      "Left",-7}|{
      
      "Right",7}|");

const int FieldWidthRightAligned = 20;
Console.WriteLine($"{
      
      Math.PI,FieldWidthRightAligned} - default formatting of the pi number");
Console.WriteLine($"{
      
      Math.PI,FieldWidthRightAligned:F3} - display only three decimal digits of the pi number");
// Expected output is:
// |Left   |  Right|
//     3.14159265358979 - default formatting of the pi number
//                3.142 - display only three decimal digits of the pi number

Les chaînes brutes (trois guillemets) et les expressions (par exemple {Math.Sqrt(X * X + Y * Y)}) sont également prises en charge. Les
littéraux de chaîne peuvent contenir du texte arbitraire sans séquences d'échappement. Les littéraux de chaîne peuvent inclure des espaces et des retours à la ligne, des guillemets intégrés et d'autres caractères spéciaux.

int X = 2;
int Y = 3;

var pointMessage = $"""The point "{X}, {Y}" is {
    
    Math.Sqrt(X * X + Y * Y)} from the origin""";

Console.WriteLine(pointMessage);
// output:  The point "2, 3" is 3.605551275463989 from the origin.

Unité

Tous les endroits qui utilisent des paramètres de type chaîne peuvent être utilisés, comme dans debug.log :

string path = Application.persistentDataPath + "DataSave.json";
Debug.Log($"File not exist : {
      
      path}");

insérez la description de l'image ici

référence

Composite :
https://learn.microsoft.com/en-us/dotnet/standard/base-types/composite-formatting
Interpolation :
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference /tokens/interpolated
raw string literals :
https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/reference-types#string-literals

Je suppose que tu aimes

Origine blog.csdn.net/gongfpp/article/details/128995042
conseillé
Classement