如果在 c# 中缺少,请在字符串中添加前缀
Add prefix in string if missing in c#
我有以下 多个 交易传递给交易 string
:
string transaction = "12345,56789";
我想检查是否该交易具有 前缀“0” 那么如何检查。
例如
"012345,056789";
假设如果这些交易没有 prefix '0' 如 "12345,56789" 我想添加这样的前缀"012345,056789".
我试过下面的代码,它对我不起作用,谁能指导我如何实现它。
if(transaction.StartsWith("0"))
{
transaction = transaction;
}
else
{
transaction = "0" + transaction;
}
编辑:现在应该可以了
您可以像处理字符数组一样处理字符串,例如:
string transactionid = "12345,56789";
string transactionid_split = transactionid.split(',');
if(transactionid_split[0][0] != "0")
transactionid_split[0] = "0" + transactionid_split[0];
if(transactionid_split[1][0] != "0")
transactionid_split[1] = "0" + transactionid_split[1];
transactionid = transactionid_split[0] + "," + transactionid_split[1]
如果你想检查字符串的每个数字部分,即
"12345,56789" => "012345,056789"
"012345,56789" => "012345,056789"
"12345,056789" => "012345,056789"
"012345,056789" => "012345,056789"
您可以 Split
transaction
检查每个部分,最后 Join
这些部分返回:
using System.Linq;
...
transaction = string.Join(",", transaction
.Split(',')
.Select(part => part.StartsWith("0") ? part : $"0{part}"));
另一种可能是正则表达式:
using System.Text.RegularExpressions;
...
transaction = Regex.Replace(transaction, @"\b[1-9]", "0$&");
在这里,我们为每个部分匹配每个最左边的数字(如果它在 1..9
范围内)(注意 \b
用于单词边框)并添加 0
前缀:在 "0$&"
0
是0
,$&
代表整场比赛。
假设 transaction
string
的格式总是由逗号分隔的两个数字,您可以使用 string.Split
要拆分字符串,请检查 "0"
的前缀,如果缺少则添加它,然后将 strings
放回原处。
类似...
var transaction = "12345,56789";
var parts = transaction.Split(',');
// You'd want to check that 0 and 1 are valid indexes, probably.
if (!parts[0].StartsWith("0"))
{
parts[0] = "0" + parts[0];
}
if (!parts[1].StartsWith("0"))
{
parts[1] = "0" + parts[1];
}
transaction = $"{parts[0]},{parts[1]}";
如果 transaction
可能有多个逗号,您也可以遍历 parts
。
我有以下 多个 交易传递给交易 string
:
string transaction = "12345,56789";
我想检查是否该交易具有 前缀“0” 那么如何检查。
例如
"012345,056789";
假设如果这些交易没有 prefix '0' 如 "12345,56789" 我想添加这样的前缀"012345,056789".
我试过下面的代码,它对我不起作用,谁能指导我如何实现它。
if(transaction.StartsWith("0"))
{
transaction = transaction;
}
else
{
transaction = "0" + transaction;
}
编辑:现在应该可以了
您可以像处理字符数组一样处理字符串,例如:
string transactionid = "12345,56789";
string transactionid_split = transactionid.split(',');
if(transactionid_split[0][0] != "0")
transactionid_split[0] = "0" + transactionid_split[0];
if(transactionid_split[1][0] != "0")
transactionid_split[1] = "0" + transactionid_split[1];
transactionid = transactionid_split[0] + "," + transactionid_split[1]
如果你想检查字符串的每个数字部分,即
"12345,56789" => "012345,056789"
"012345,56789" => "012345,056789"
"12345,056789" => "012345,056789"
"012345,056789" => "012345,056789"
您可以 Split
transaction
检查每个部分,最后 Join
这些部分返回:
using System.Linq;
...
transaction = string.Join(",", transaction
.Split(',')
.Select(part => part.StartsWith("0") ? part : $"0{part}"));
另一种可能是正则表达式:
using System.Text.RegularExpressions;
...
transaction = Regex.Replace(transaction, @"\b[1-9]", "0$&");
在这里,我们为每个部分匹配每个最左边的数字(如果它在 1..9
范围内)(注意 \b
用于单词边框)并添加 0
前缀:在 "0$&"
0
是0
,$&
代表整场比赛。
假设 transaction
string
的格式总是由逗号分隔的两个数字,您可以使用 string.Split
要拆分字符串,请检查 "0"
的前缀,如果缺少则添加它,然后将 strings
放回原处。
类似...
var transaction = "12345,56789";
var parts = transaction.Split(',');
// You'd want to check that 0 and 1 are valid indexes, probably.
if (!parts[0].StartsWith("0"))
{
parts[0] = "0" + parts[0];
}
if (!parts[1].StartsWith("0"))
{
parts[1] = "0" + parts[1];
}
transaction = $"{parts[0]},{parts[1]}";
如果 transaction
可能有多个逗号,您也可以遍历 parts
。