Nano Hash - криптовалюты, майнинг, программирование

Разделить строку на N-е вхождение char

У меня есть много таких строк:

29/10/2018 14:50:09402325 671

Я хочу разделить эту строку, чтобы они были такими:

29/10/2018 14:50

09402325 671

Затем они будут добавлены в набор данных и проанализированы позже.

Проблема, с которой я сталкиваюсь, заключается в том, что я использую этот код:

 string[] words = emaildata.Split(':');

он разделяет их дважды; Я хочу разбить его только один раз при втором появлении :.

Как я могу это сделать?

29.10.2018


Ответы:


1

Вы можете использовать LastIndexOf() и некоторые последующие вызовы Substring():

string input = "29/10/2018 14:50:09402325 671";

int index = input.LastIndexOf(':');

string firstPart = input.Substring(0, index);
string secondPart = input.Substring(index + 1);

Скрипка здесь

Тем не менее, еще одна вещь, которую следует задать себе, — нужно ли вам делать это более сложным, чем это необходимо. Похоже, эти данные всегда будут иметь одинаковую длину до второго экземпляра :, верно? Почему бы просто не разделить по известному индексу (т.е. не найти сначала :):

string firstPart = input.Substring(0, 16);
string secondPart = input.Substring(17);
29.10.2018
  • Отличный ответ и очень важный момент о том, что дата и время всегда имеют одинаковую длину, большое спасибо. 29.10.2018

  • 2

    вы можете изменить строку, затем вызвать обычный метод разделения, запрашивающий один результат, а затем отменить два результата

    29.10.2018

    3

    и с регулярным выражением: https://dotnetfiddle.net/Nfiwmv

    using System;
    using System.Text.RegularExpressions;
    
    public class Program  {
        public static void Main() {
            string input = "29/10/2018 14:50:09402325 671";
            Regex rx = new Regex(@"(.*):([^:]+)",
                RegexOptions.Compiled | RegexOptions.IgnoreCase);
    
            MatchCollection matches = rx.Matches(input);
            if ( matches.Count >= 1 ) {
                var m = matches[0].Groups;
                Console.WriteLine(m[1]);
                Console.WriteLine(m[2]);        
            }
        }
    }
    
    29.10.2018
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..