Advertisement
yahorrr

Untitled

Sep 22nd, 2022
787
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.56 KB | None | 0 0
  1. using System;
  2. using System.Diagnostics;
  3. using System.Reflection.Metadata.Ecma335;
  4. using System.Text;
  5. using System.Xml;
  6.  
  7. namespace TransformerToWords
  8. {
  9.     /// <summary>
  10.     /// Implements transformer class.
  11.     /// </summary>
  12.     public class Transformer
  13.     {
  14.         /// <summary>
  15.         /// Transforms each element of source array into its 'word format'.
  16.         /// </summary>
  17.         /// <param name="source">Source array.</param>
  18.         /// <returns>Array of 'word format' of elements of source array.</returns>
  19.         /// <exception cref="ArgumentNullException">Thrown when array is null.</exception>
  20.         /// <exception cref="ArgumentException">Thrown when array is empty.</exception>
  21.         /// <example>
  22.         /// new[] { 2.345, -0.0d, 0.0d, 0.1d } => { "Two point three four five", "Minus zero", "Zero", "Zero point one" }.
  23.         /// </example>
  24.         public string[] Transform(double[]? source)
  25.         {
  26.             string buffer = string.Empty;
  27.             string[] result = new string[source.Length];
  28.  
  29.             for (int i = 0; i < source.Length; i++)
  30.             {
  31.                 switch (source[i])
  32.                 {
  33.                     case double.NaN:
  34.                         result[i] = "Not a Number";
  35.                         continue;
  36.                     case double.NegativeInfinity:
  37.                         result[i] = "Negative Infinity";
  38.                         continue;
  39.                     case double.PositiveInfinity:
  40.                         result[i] = "Positive Infinity";
  41.                         continue;
  42.                 }
  43.  
  44.                 buffer = source[i].ToString();
  45.  
  46.                 for (int j = 0; j < buffer.Length; j++)
  47.                 {
  48.                     switch (buffer[i])
  49.                     {
  50.                         case '-':
  51.                             result[i] += " minus";
  52.                             break;
  53.                         case '.':
  54.                             result[i] += " point";
  55.                             break;
  56.                         case 'e':
  57.                             result[i] += " E plus";
  58.                             break;
  59.                         case '0':
  60.                             result[i] += " zero";
  61.                             break;
  62.                         case '1':
  63.                             result[i] += " one";
  64.                             break;
  65.                         case '2':
  66.                             result[i] += " two";
  67.                             break;
  68.                         case '3':
  69.                             result[i] += " three";
  70.                             break;
  71.                         case '4':
  72.                             result[i] += " four";
  73.                             break;
  74.                         case '5':
  75.                             result[i] += " five";
  76.                             break;
  77.                         case '6':
  78.                             result[i] += " six";
  79.                             break;
  80.                         case '7':
  81.                             result[i] += " seven";
  82.                             break;
  83.                         case '8':
  84.                             result[i] += " eight";
  85.                             break;
  86.                         case '9':
  87.                             result[i] += " nine";
  88.                             break;
  89.                     }
  90.                 }
  91.  
  92.                 result[i] = result[i].Remove(0, 1);
  93.                 result[i] = result[i].ToUpper() + result[i].Substring(1).ToLower();
  94.             }
  95.  
  96.             return result;
  97.         }
  98.     }
  99. }
  100.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement