Číst v angličtině

Sdílet prostřednictvím


Postupy: Zápis znaků do řetězce

Následující příklady kódu zapisuje znaky synchronně nebo asynchronně z pole znaků do řetězce.

Příklad: Synchronní zápis znaků v aplikaci konzoly

Následující příklad používá k zápisu StringWriter pěti znaků synchronně do objektu StringBuilder .

using System;
using System.IO;
using System.Text;

public class CharsToStr
{
    public static void Main()
    {
        StringBuilder sb = new StringBuilder("Start with a string and add from ");
        char[] b = { 'c', 'h', 'a', 'r', '.', ' ', 'B', 'u', 't', ' ', 'n', 'o', 't', ' ', 'a', 'l', 'l' };

        using (StringWriter sw = new StringWriter(sb))
        {
            // Write five characters from the array into the StringBuilder.
            sw.Write(b, 0, 5);
            Console.WriteLine(sb);
        }
    }
}
// The example has the following output:
//
// Start with a string and add from char.


Příklad: Asynchronní zápis znaků v aplikaci WPF

Dalším příkladem je kód aplikace WPF. Při načtení okna příklad asynchronně čte všechny znaky z TextBox ovládacího prvku a ukládá je do pole. Potom asynchronně zapíše každé písmeno nebo prázdný znak na samostatný řádek TextBlock ovládacího prvku.

using System;
using System.Text;
using System.Windows;
using System.IO;

namespace StringReaderWriter
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private async void Window_Loaded(object sender, RoutedEventArgs e)
        {
            char[] charsRead = new char[UserInput.Text.Length];
            using (StringReader reader = new StringReader(UserInput.Text))
            {
                await reader.ReadAsync(charsRead, 0, UserInput.Text.Length);
            }

            StringBuilder reformattedText = new StringBuilder();
            using (StringWriter writer = new StringWriter(reformattedText))
            {
                foreach (char c in charsRead)
                {
                    if (char.IsLetter(c) || char.IsWhiteSpace(c))
                    {
                        await writer.WriteLineAsync(char.ToLower(c));
                    }
                }
            }
            Result.Text = reformattedText.ToString();
        }
    }
}

Viz také