- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在哪里可以找到与 Python maketrans 和 translate 等效的 C# 代码?谢谢!
最佳答案
这应该带你到那里的大部分方式:
public class MakeTrans
{
private readonly Dictionary<char, char> d;
public MakeTrans(string intab, string outab)
{
d = Enumerable.Range(0, intab.Length).ToDictionary(i => intab[i], i => outab[i]);
//d = new Dictionary<char, char>();
//for (int i = 0; i < intab.Length; i++)
// d[intab[i]] = outab[i];
}
public string Translate(string src)
{
System.Text.StringBuilder sb = new StringBuilder(src.Length);
foreach (char src_c in src)
sb.Append(d.ContainsKey(src_c) ? d[src_c] : src_c);
return sb.ToString();
}
}
您有责任确保 intab 和 outtab 的长度相同。您可以添加删除字母等功能。
字典构建以一种很酷的 LINQ-y 方式完成。这有点不明显,因此提供了注释掉的代码并执行相同的操作。
这是它在 python ( example lifted from here ) 中的样子:
>>> from string import maketrans # Required to call maketrans function.
>>>
>>> intab = "aeiou"
>>> outtab = "12345"
>>> trantab = maketrans(intab, outtab)
>>>
>>> str = "this is string example....wow!!!";
>>> print str.translate(trantab);
th3s 3s str3ng 2x1mpl2....w4w!!!
C#测试代码如下:
static void Main(string[] args)
{
MakeTrans.MakeTrans mt = new MakeTrans.MakeTrans("aeiou", "12345");
Console.WriteLine("{0}", mt.Translate("this is string example....wow!!!"));
}
这是输出:
th3s 3s str3ng 2x1mpl2....w4w!!!
关于python maketrans和translate的C#等价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1610217/
我想用 ae 替换 æ 字符。我怎样才能获得它?这是我对 maketrans 和 translate 的尝试: word = 'være' letters = ('å','ø', 'æ') repla
我有这样一个函数: persian_numbers = '۱۲۳۴۵۶۷۸۹۰' english_numbers = '1234567890' arabic_numbers = '١٢٣٤٥٦٧٨٩
很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。为了帮助澄清这个问题以便可以重新打开它,visit the help center
这是我的代码。不仅在此代码中,在我导入任何模块的每个代码中,ImportError: cannot import name 'package name' 都会出现 from string import
这是 Python 2.7 中的。string.maketrans 函数应该返回一个翻译映射,它是一个恰好有 256 个字符的字符串。 为什么我用 print 命令看不到这个字符串? allchars
尝试在 Python 3.5.2 shell 中运行命令时收到以下错误: Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:01:18) [MSC
string.maketrans("","") 给予 \x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x
我一直在做一些有关此错误的先前研究。这里有一些与StackOverflow相关的解释,但是建议的解决方案却完全无关。 当我尝试从gi.repository导入Gtk时,它崩溃并显示以下输出: bash
def complement(dna): transtable = dna.maketrans('acgtnACGTN', 'tgcanTGCAN') return dna.trans
我有一个很好的小方法可以从字符串中删除控制字符。不幸的是,它在 Python 2.6 中不起作用(仅在 Python 3.1 中)。它指出: mpa = str.maketrans(dict.from
我正在使用 petl 软件包,该软件包是我在 virtulaenv 中使用 pip 和 python 3.4 安装的。当我尝试测试 petl 包是否在 python shell 中正确安装时我这样做是
在此答案中: https://stackoverflow.com/a/3269756/3225934 Paul Rubel(然后是 wjandra)像这样交错输入文本: rot13 = string.
当参数为 unicode 时,Pypy 似乎无法处理 string.maketrans(),但 CPython 可以: $ python Python 2.7.5 (default, Oct 11 2
c++11 是否提供了在 python 中实现的优雅解决方案 maketrans/translate ? from string import maketrans intab = "aeiou" ou
使用 python 2.7 我得到这个错误: Traceback (most recent call last): File "/usr/lib/python2.7/runpy.py",
运行 python proxy.py 时出现错误 $ python proxy.py INFO - [Sep 28 14:59:19] getting appids from goagent plus
这是完整的代码: s = 'life is short, stunt it!!?' from string import punctuation tbl = str.maketrans({ord(ch
我正在编写的代码应该找到 DNA 正向和反向互补链上基因序列的所有开放阅读框 (orfs)。为了制作 DNA 的反向链,我打算使用 str.maketrans() 将互补碱基映射到彼此。 #!/usr
我在 Google AppEngine (Python SDK) 中有这段代码: from string import maketrans intab = u"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØò
[ python 2] SUB = string.maketrans("0123456789","₀₁₂₃₄₅₆₇₈₉") 此代码产生错误: ValueError: maketrans argumen
我是一名优秀的程序员,十分优秀!