私は数字で文字を変更したいと思っています。たとえば、aと1、bと2 ... zと26です。文字列 "hello"は次のようになります:82491513621。最も簡単な方法で、2番目はSWITCHステートメントでこれを行う方法です。私はこれを試みたが、休憩した。それは止まる。ありがとう。C#で文字列内のすべての文字を数値で変更する方法は?
答えて
を使用し、StringBuilder
のための最終的なstring
を取得するには、どのようなあなたがやる。単純なスイッチでは不十分です。
string input = "hello";
StringBuilder output = new StringBuilder();
foreach(char c in input)
{
output.Append((c - 'a' + 1));
}
Console.WriteLine(output);
いくつかの説明:すべての文字はアルファベット順に関連付けられた数値ASCIIコードを持っているので、それは文字を表す任意の文字から、我々は「A」を減算し、アルファベットでその数値のランクを取得するために1を追加することができることを意味します。
switch文を使用することが絶対条件であるならば、あなたは文字の各値の個別ケースを記述する必要があります。
string input = "hello";
StringBuilder output = new StringBuilder();
foreach(char c in input)
{
switch(c)
{
case 'a': output.Append("1"); break;
case 'b': output.Append("2"); break;
// etc.
case 'z': output.Append("26"); break;
}
}
Console.WriteLine(output);
以下のコードは、文字の表記ASCIIに基づいています。
- Aは65
- Bが等値66
- ...で表される値で表されます。
char[] letters = { 'A', 'B', 'C', 'D' }; int[] numbers = new int[4]; for (int i = 0; i < 4; i++) { numbers[i] = Convert.ToByte(letters[i], CultureInfo.InvariantCulture) - 64; }
代替方法:
string myString = "HELLO"; StringBuilder stringAsNumbers = new StringBuilder(); for (int i = 0; i < myString.Length; i++) { stringAsNumbers.Append(Convert.ToByte(myString[i], CultureInfo.InvariantCulture) - 64); }
ケース感度の世話をするchar配列から
。上記のコードは大文字のみで動作します。65は 'A'(aではなく)のASCIIコードです。
switch文を試してはいけません。恐ろしく見えます。
EDIT: あなたが本当にswitchステートメントをしたい場合は、ここにある:
string myString = "AAB";
StringBuilder stringAsNumbers = new StringBuilder();
for (int i = 0; i < myString.Length; i++)
{
switch (myString[i])
{
case 'A':
case 'a':
stringAsNumbers.Append("1");
break;
case 'B':
case 'b':
stringAsNumbers.Append("2");
break;
...
}
}
EDIT: あなたはループを必要とするstringAsNumbers.ToString();
それは宿題ですが、 'switch'が必要かもしれません。 –
はい、宿題はスイッチについてですが、それは必須ですが、最も簡単な方法を求めていました。 – samuraisxmali
ok!更新された回答をご覧ください。 – ken2k
あなたが好きな機能を定義することができます。
int transform(char ch)
{
}
これは、辞書を使用して実装できます。
Dictionary<char, int> map;
map['a'] = 1;
map['b'] = 2;
...
return map[ch];
またはスイッチa
switch(ch)
{
case 'a': return 1;
case 'b': return 2;
....
}
これで機能が準備完了です。文字列を繰り返して、各文字に対してトランスフォームを呼び出すことができます。
- 1. 文字列を文字列に変換する方法hash_map(文字列、文字列、stringHashFunction>をLinuxでC++
- 2. 文字列内の文字数を取得する方法
- 3. 文字列内のすべての値を 'm'に変更する
- 4. Pythonで文字列内のすべての文字列を拡張する
- 5. Javascriptで文字列内のすべての文字を削除するには?
- 6. C++でラテンUTF-8文字列の大文字小文字を変更するには? Objective-Cで
- 7. 文字列の最後の2文字を切り捨て、Oracleで数値に変換する方法は?
- 8. 文字列内の文字数を調べる
- 9. 文字列/ txtファイル内の文字列を置換する文字と数値に値を設定する
- 10. PHP:1文字以上の文字列内の文字を変更することは可能ですか?
- 11. C#文字列書式フラグまたは小文字に変更する文字
- 12. JavaScriptで文字列の数値を解析する方法は?
- 13. 文字列内の指定文字をルビーの小文字から大文字に変換する方法
- 14. 文字列から数字、ドットまたはマイナス以外の文字列をすべて削除する方法
- 15. すべての大文字を小文字に変更する方法はありますが、Vimの文字列リテラルを除外する方法
- 16. Eclipseで文字列の大文字を変更する
- 17. 文字列内の変数を変更する
- 18. 文字列を1文字ずつの文字列に変換する方法
- 19. freemarkerテンプレートの文字列を数値に変換する方法
- 20. C++:インデックスで文字列を変更
- 21. (文字、文字列、文字と数字)に変換するHEX値に
- 22. 変更する複数の文字列
- 23. 文字列+ ColYデータ+文字列ですべてのColXを更新する方法
- 24. すべての入力フィールドの値を大文字に変更する方法
- 25. Ruby Regex文字列内の数字の文字をキャプチャする
- 26. C#文字列内のすべての文字が同じであるかどうかを調べる
- 27. Cで文字列の文字周波数を計算する
- 28. 文字列内のすべての数値を配列(C++)に1つずつ読み込む方法
- 29. C++では文字列をクラスオブジェクトに変換する方法は?
- 30. Cプログラミング - 文字列配列要素の変更文字
現在のコードを投稿できますか? –
コードを表示できますか?宿題でバグを見つけても問題ありませんが、コードを書いても問題ありません。 – dasblinkenlight
あなたはどうやって82491513621になるのですか?それは '8 5 12 12 15'ではないでしょうか? – Default