当前位置: 首页 > 知识库问答 >
问题:

字符串定义中的条件

长孙嘉
2023-03-14

我以前写过这个

if (condition)
{
    str = "A";
}
else
{
    str = "B";
}

finalstr = "Hello "+str;

不知道有没有更好的办法。

我想要的是

finalstr = "Hello "+ if (condition) {str = "A"} else {str = "B"};

或者

finalstr = "Hello "+ condition ? "A" : "B";

$var = “你好”.if(condition)...在 PHP 中。

有没有类似的方法将条件直接放入字符串中?

共有2个答案

孔厉刚
2023-03-14

在条件的简单数字示例中,对于超过2个结果:

var c = 1; // Algorithm / console input / etc...

var result = "hello " + c switch
{
    1 => "variant a",
    2 => "variant b",
    _ => "default variant if there is no specific match"
};

所述条件不必是数字,此模式基本上适用于其他所有内容。

子车成和
2023-03-14

您可以做到:

finalstr = "Hello " + (condition ? "A" : "B");

或者

finalstr = $"Hello { (condition ? "A" : "B") }";

或使用<code>字符串。格式</code>

finalstr = string.Format("Hello {0}", condition ? "A" : "B");

或者您可以创建一个适合您需要的扩展:

public static class StringExtension
{
    // it's not needed since C# supports ternary, but I did it anyway 
    public static string If(this string str, Func<string, string> condition)
    {
        return string.IsNullOrWhiteSpace(str) ? str : $"{str} {condition(str)}";
    }
}

那么你可以这样做:

finalstr = "Hello".If(x => x == str ? "A" : "B");
 类似资料:
  • 主要内容:直接定义字符串,使用 String 类定义字符串是 Java 中特殊的类,使用方法像一般的基本数据类型,被广泛应用在 Java 编程中。Java 没有内置的字符串类型,而是在标准 Java 类库中提供了一个 String 类来创建和操作字符串。 在 Java 中定义一个字符串最简单的方法是用双引号把它包围起来。这种用双引号括起来的一串字符实际上都是 String 对象,如字符串“Hello”在编译后即成为 String 对象。因此也可以通

  • 问题内容: 在此结构定义中: 字符串 “ json:message” 的含义是什么,以及如何访问它(如果可访问)。先感谢您。 问题答案: 这些是结构标记。包使用此struct标记 将对象转换为JSON,并将 JSON字符串转换为对象 在将一个结构封送(编码)为JSON字符串时,它将查找此struct标记以分配 键名,如果不存在,则它可能会使用结构字段名本身 顺便说一句语法是错误的 这是供参考的示例

  • 问题内容: 为了回答这个问题,我设法通过转义反斜杠来使字符串成为转义字符。 当我尝试将其概括为转义所有转义的字符时,它似乎无能为力: 但是对于特定的转义字符使用相同的方法,它确实起作用: 有一般的方法可以做到这一点吗?应包括,,,等。 问题答案: 使用r’text’将字符串定义为raw,如下面的代码所示:

  • 问题内容: 我想知道为什么以下程序会抛出NPE 而这 不。当然,这是一个优先级问题,我很好奇串联的工作原理。 问题答案: 这是理解运算符优先级的重要性的一个示例。 您需要括号,否则解释如下: 有关运算符及其优先级的列表,请参见此处。另请注意该页面顶部的警告: 注意:甚至有可能混淆时,请使用显式括号。

  • 我不明白这个错误: TypeError:string是未定义的函数d3_time_parse(date,template,string,j){var c,p,i=0,n=template.length,m=string.length;... 这里是我的代码:

  • 在普通字符串中,我可以用反斜杠转义: 在字符串文字中有可能做同样的事情吗?反斜杠不再是转义字符: 到目前为止,我看到的唯一解决方案是字符串连接,这非常难看,以及嵌套插值,这开始变得有点可笑: