1 Востаннє редагувалося k1ntoho (30.12.2018 15:12:53)

Тема: Юнікод

Можете, будь ласка, вказати мені діапазон символів юникоду (англійська абетка з великими та маленькими буквами без інших символів)

2

Re: Юнікод

Іще одна людина сьогодні дізнається про існування Вікіпедії: https://en.m.wikipedia.org/wiki/List_of … characters

Подякували: leofun011

3

Re: Юнікод

Мені потрібен діапазон, НЕ номер в юникоді, а саме діапазон

4

Re: Юнікод

Я вже пошукав. Ймовірно такого нема (

5

Re: Юнікод

Тобто знайти коди літер a, z, A і Z - це вже заскладна операція? Причому їхні коди в Unicode та ASCII збігаються.

Подякували: leofun011

6

Re: Юнікод

Ну і так, це не один діапазон, а два.
Але бажано не використовувати ці номери, а користуватися стандартними процедурами чи списками.

7

Re: Юнікод

Я не тупий. Це я знаю. Я думав, що є одним діапазоном, бо мені потрбіно саме так. Добре, буду шукати інші способи доробити код

8

Re: Юнікод

Це ви намагаєтеся взяти навмання один із символів A-Za-z?

9

Re: Юнікод

Типу так. Рандомний символ від А до z

10

Re: Юнікод

ascii = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
c = ascii[random(ascii.length())];

чи як там випадкові числа в C# генеруються.
Ну, або так хочеться процедурно, то

r = random(52);
c = r<26 ? 'A'+r : 'a'-26+r;

Здається, так перетворювати можна.
Але я рекомендую перший варіант - 50 зайвих байт в обмін на пару розгалужень і сум.

Подякували: leofun01, k1ntoho, Arete3

11

Re: Юнікод

Добре, друже. Так і зроблю. Спасибі

12

Re: Юнікод

using System;
using System.Text;

namespace RandomAz {
    static class Program {
        static char GetRandomCharAz(Random rand) {
            // (('Z' - 'A' + 1) << 1) == 52
            int v = rand.Next(52);
            return (char)(((v >> 1) + 'A') | ((v & 1) << 5));
        }
        static string GetRandomStringAz(int length, Random rand) {
            StringBuilder sb = new StringBuilder();
            while(--length >= 0)
                sb.Append(GetRandomCharAz(rand));
            return sb.ToString();
        }
        static void Main(string[] args) {
            Random rand = new Random();
            Console.WriteLine(GetRandomStringAz(64, rand));
        }
    }
}

Цей код виводить в консоль стрічку з 64 символів, де кожен символ є псевдо-випадково згенерованим із [A-Za-z].

Тепер дивлюсь на це і бачу, що щось пішло не по плану.

Подякували: k1ntoho1