C# 字符串到字符到字符串
我想制作一个程序,将您输入的字符串转换为不同的字符串,因此,例如,如果我输入C# 字符串到字符到字符串,c#,string,C#,String,我想制作一个程序,将您输入的字符串转换为不同的字符串,因此,例如,如果我输入“Hello World”,每个字符都将转换为字符串,控制台将输出类似“Alpha Beta Gamma Zeta Foxtrot Dona Rama Lana Zema”的内容-将每个字符变成单词 我试着这样做: static string WordMap(string value) { char[] buffer = value.ToCharArray(); for (int i = 0; i <
“Hello World”
,每个字符都将转换为字符串,控制台将输出类似“Alpha Beta Gamma Zeta Foxtrot Dona Rama Lana Zema”的内容
-将每个字符
变成单词
我试着这样做:
static string WordMap(string value)
{
char[] buffer = value.ToCharArray();
for (int i = 0; i < buffer.Length; i++)
{
if (letter = "a")
{
letter = ("Alpha");
}
//and so on
buffer[i] = letter;
}
return new string(buffer);
}
静态字符串字映射(字符串值)
{
char[]buffer=value.ToCharArray();
for(int i=0;i
但我就是不能让它工作。
有谁能给我一个提示或给我指出正确的方向吗?你需要的是一本
字典
你需要的是一本
字典
小贴士:
您不必从字符串创建字符数组,您可以通过索引器轻松访问字符串中的单个字符:
char some = "123"[2];
使用“”时,则创建字符串而不是字符,因此应使用“”创建字符以进行比较:
if (some == 'a') Console.WriteLine("character is a, see how you compare chars!!!");
小贴士:
您不必从字符串创建字符数组,您可以通过索引器轻松访问字符串中的单个字符:
char some = "123"[2];
使用“”时,则创建字符串而不是字符,因此应使用“”创建字符以进行比较:
if (some == 'a') Console.WriteLine("character is a, see how you compare chars!!!");
首先,缓冲区是一个字符数组。数组具有固定大小,要扩展它们,需要创建一个新数组。为了克服这项繁琐的工作,有一个类可以自动完成这项工作 其次,如果你保留这些“α”,“β”。。。if语句中的字符串将有一段很长的代码。您可以使用字典替换它,或者从单个字符串或文本文件创建它 要将此付诸实施:
class MyClass
{
static Dictionary<char, string> _map = new Dictionary<char, string>();
static MyClass()
{
_map.Add('a', "Alpha");
_map.Add('b', "Beta");
// etc
}
static string WordMap(string data)
{
var output = new StringBuilder();
foreach (char c in data)
{
if (_map.ContainsKey(c))
{
output.Append(_map[c]);
output.Append(' ');
}
}
return output.ToString();
}
}
class-MyClass
{
静态字典_map=新字典();
静态MyClass()
{
_地图。添加('a','Alpha');
_地图添加('b','Beta');
//等
}
静态字符串WordMap(字符串数据)
{
var输出=新的StringBuilder();
foreach(数据中的字符c)
{
如果(_map.ContainsKey(c))
{
Append(_-map[c]);
输出。追加(“”);
}
}
返回output.ToString();
}
}
没有字典的解决方案:
static string WordMap(string data)
{
const string words = "Alpha Beta Gamma Delta ...";
string[] wordMap = words.Split(' ');
var output = new StringBuilder();
foreach (char c in data)
{
int index = c - 'a';
if (index >= 0 && index < wordMap.Length)
{
output.Append(wordMap[index]);
output.Append(' ');
}
}
return output.ToString();
}
静态字符串WordMap(字符串数据)
{
const string words=“Alpha-Beta-Gamma-Delta…”;
string[]wordMap=words.Split(“”);
var输出=新的StringBuilder();
foreach(数据中的字符c)
{
int index=c-‘a’;
如果(索引>=0&&index
首先,缓冲区是一个字符数组。数组具有固定大小,要扩展它们,需要创建一个新数组。为了克服这项繁琐的工作,有一个类可以自动完成这项工作
其次,如果你保留这些“α”,“β”。。。if语句中的字符串将有一段很长的代码。您可以使用字典替换它,或者从单个字符串或文本文件创建它
要将此付诸实施:
class MyClass
{
static Dictionary<char, string> _map = new Dictionary<char, string>();
static MyClass()
{
_map.Add('a', "Alpha");
_map.Add('b', "Beta");
// etc
}
static string WordMap(string data)
{
var output = new StringBuilder();
foreach (char c in data)
{
if (_map.ContainsKey(c))
{
output.Append(_map[c]);
output.Append(' ');
}
}
return output.ToString();
}
}
class-MyClass
{
静态字典_map=新字典();
静态MyClass()
{
_地图。添加('a','Alpha');
_地图添加('b','Beta');
//等
}
静态字符串WordMap(字符串数据)
{
var输出=新的StringBuilder();
foreach(数据中的字符c)
{
如果(_map.ContainsKey(c))
{
Append(_-map[c]);
输出。追加(“”);
}
}
返回output.ToString();
}
}
没有字典的解决方案:
static string WordMap(string data)
{
const string words = "Alpha Beta Gamma Delta ...";
string[] wordMap = words.Split(' ');
var output = new StringBuilder();
foreach (char c in data)
{
int index = c - 'a';
if (index >= 0 && index < wordMap.Length)
{
output.Append(wordMap[index]);
output.Append(' ');
}
}
return output.ToString();
}
静态字符串WordMap(字符串数据)
{
const string words=“Alpha-Beta-Gamma-Delta…”;
string[]wordMap=words.Split(“”);
var输出=新的StringBuilder();
foreach(数据中的字符c)
{
int index=c-‘a’;
如果(索引>=0&&index
带有LINQ和字符串。Join
它简短易读。因为你想用一个新词来表示特殊的字符,所以你需要一个单词地图。我会使用字典
:
使用LINQ和
String.Join
。因为你想用一个新词来表示特殊的字符,所以你需要一个单词地图。我会使用字典
:
只需声明第二个变量,在其中建立结果。 我认为你有一些语法问题,你需要在 条件,否则这是一项任务
static string WordMap(string value)
{
string result = string.Empty;
char[] buffer = value.ToCharArray();
for (int i = 0; i < buffer.Length; i++)
{
if (letter == "a")
{
result += ("Alpha");
}
//and so on
}
return result;
}
一种更快的方法是使用StringBuilder(美国文档),
它为您提供了处理较大字符串的快速方便的方法。
唯一的缺点是,你需要知道一点,结果有多大
将以字符为单位,因为您需要提供起始维度。
在这里,你不应该仅仅从1或100开始。每次,当StringBuilder
如果已满,它将创建一个新的更大的实例并复制值,因此将创建多个实例
其中的一个会填满你的内存,这会导致内存不足异常,
在处理成千上万个字符时
但正如所说的,为了好玩的代码,所有这些都不重要。。。
当然,你需要意识到,如果你这样做,你的结果会
在一条直线上,没有中断。如果需要换行符,请在结尾处添加“\n”
弦。或者添加任何你需要的元素
问候,
Markus只需声明第二个变量,在其中建立结果。 我认为你有一些语法问题,你需要在 条件,否则这是一项任务
static string WordMap(string value)
{
string result = string.Empty;
char[] buffer = value.ToCharArray();
for (int i = 0; i < buffer.Length; i++)
{
if (letter == "a")
{
result += ("Alpha");
}
//and so on
}
return result;
}
更快捷的方法是使用StringBuilder(s.doc
string[] words = { "Alpha", "Beta", "C_word", "D_Word" }; // ....
string myPhrase = "aBC";
myPhrase.Replace(" ", string.Empty).ToList().ForEach(a =>
{
int asciiCode = (int)a;
/// ToUpper()
int index = asciiCode >= 97 ? asciiCode - 32 : asciiCode;
Console.WriteLine(words[index - 65]); // ascii --> 65-a , 66-b ...
});
static Dictionary<char, string> Mapping =
new Dictionary<char, string>()
{ { 'a', "alpha" }, { 'b', "beta" }, { 'c', "gamma" }, { 'd', "zeta" } };
static void Main(string[] args)
{
string test = "abcx";
Console.WriteLine(string.Join(" ", test.Select(t => GetMapping(t))));
//output alpha beta gamma not found
Console.ReadKey();
}
static string GetMapping(char key)
{
if (Mapping.ContainsKey(key))
return Mapping.First(a => a.Key == key).Value;
else
return "not found";
}