string dex = "ab43kjh43434v34b";
如何从上面的字符串中将每个第二个字符转换为另一个字符串? 例如:
string dex1 = "b3j4443b";
答案 0 :(得分:2)
string dex = "ab43kjh43434v34b";
var dex1 = String.Join("", dex.Where((c,i) => i % 2 == 1));
答案 1 :(得分:1)
StringBuilder result = new StringBuilder();
for (int i = 0; i <= dex.Length; i++)
{
if (i % 2 != 0) continue;
result.Append(dex[i]);
}
答案 2 :(得分:1)
正则表达式也有效:
string EveryOtherCharacter( string s , int modulo2 )
{
string value = Regex.Replace( s , "." , m => m.Index & 1 == 1 ? m.Value : "" )) ;
return value ;
}
虽然我认为,你会发现避免类似LINQ的聪明,坚持简单会产生最大的效率。这是一个简单而明显的通用版本:
string SelectEveryNthCharFromString( string s, int n , int r )
{
if ( s == null ) throw new ArgumentNullException("s") ;
if ( n < 1 ) throw new ArgumentOutOfRangeException("n") ;
if ( r < 0 || r > n-1 ) throw new ArgumentOutOfRangeException("r") ;
StringBuilder buffer = new StringBuilder( 1 + s.Length / n ) ;
for ( int i = 0 ; i < s.Length ; ++i )
{
if ( i % n != r ) continue ;
buffer.Append(s[i]) ;
}
return buffer.ToString() ;
}
答案 3 :(得分:0)
您可以将字符串视为字符数组,例如dex[0]
会在您的示例中为您提供a
。那个,(每个)-loop和Length
属性应该足以解决你的问题。