Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字符串到字符到字符串_C#_String - Fatal编程技术网

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";            
    }