דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. הסרת שורות ריקות מ-string ב-C#

הסרת שורות ריקות מ-string ב-C#

מתוזמן נעוץ נעול הועבר תכנות
11 פוסטים 5 כותבים 466 צפיות 4 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • pcinfogmachP מנותק
    pcinfogmachP מנותק
    pcinfogmach
    כתב ב נערך לאחרונה על ידי
    #1

    מצו"ב קוד להסרת שורות ריקות ממחרוזת טקסט ב-C#
    אשמח לקבל משוב

    public static string RemoveEmptyLines(this string input)
    {
        var lines = input.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
        var nonEmptyLines = lines.Where(line => !string.IsNullOrWhiteSpace(line));
        return string.Join("\n", nonEmptyLines);
    }
    

    גמ"ח מידע מחשבים ואופיס

    M תגובה 1 תגובה אחרונה
    3
    • dovidD מנותק
      dovidD מנותק
      dovid
      ניהול
      כתב ב נערך לאחרונה על ידי dovid
      #2

      אפשרות נוספת:

       Regex.Replace(input, @"^\s*\n", "", RegexOptions.Multiline);
      
      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
      תגובה 1 תגובה אחרונה
      3
      • pcinfogmachP pcinfogmach

        מצו"ב קוד להסרת שורות ריקות ממחרוזת טקסט ב-C#
        אשמח לקבל משוב

        public static string RemoveEmptyLines(this string input)
        {
            var lines = input.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
            var nonEmptyLines = lines.Where(line => !string.IsNullOrWhiteSpace(line));
            return string.Join("\n", nonEmptyLines);
        }
        
        M מנותק
        M מנותק
        Mordechai 0
        כתב ב נערך לאחרונה על ידי
        #3

        @pcinfogmach

        קוד יפה מאוד!!!
        אם יורשה לי אני לא ליד מחשב עם VS בשביל לבדוק את הקוד אבל בכל אופן יש לי קצת הערות
        חשוב להבין מה כתבת בכדי להבין מה קורה בקוד

        var lines = input.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
        

        פה אתה מחלק את המחרוזת לפי שני תווים גם לפי \r וגם לפי \n ומסיר את האייטמים הריקים

        זה אומר שהשורה

        var nonEmptyLines = lines.Where(line => !string.IsNullOrWhiteSpace(line));
        

        מיותרת

        בשורה

        return string.Join("\n", nonEmptyLines);
        

        אתה מחבר את הרשימה חזרה למחרוזת אם \n בין כל אייטם

        אני רואה שאתה משתמש בextension
        כדי לך גם להפוך את string.Jion ל extension (זה יהיה לך מאוד שימושי בהמשך)
        אני חושב שהדרך הטובה יותר לכתוב את הקוד הוא

        public static string RemoveEmptyLines(this string input)
        {
            return input.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries).ToStringJoin();
        }
        public static string ToStringJoin<T>(this IEnumerable<T> input, string separator = "\n")
        {
            return string.Join(separator, input);
        }
        
        תגובה 1 תגובה אחרונה
        0
        • dovidD מנותק
          dovidD מנותק
          dovid
          ניהול
          כתב ב נערך לאחרונה על ידי
          #4

          @Mordechai-0 הסרת אייטמים ריקים לא מסירה שורות בהם יש רווחים בלבד, משא"כ הWhere.

          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
          תגובה 1 תגובה אחרונה
          2
          • yossizY מנותק
            yossizY מנותק
            yossiz
            כתב ב נערך לאחרונה על ידי
            #5

            @pcinfogmach כדאי לתקן את שם הפונקציה שישקף בצורה מדוייקת את התוכן
            הייתי קורא לזה removeWhitespaceOnlyLines (מסתבר שזה היה גם חוסך את אי ההבנה של @Mordechai-0)

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

            תגובה 1 תגובה אחרונה
            3
            • קומפיונטק מחובר
              קומפיונטק מחובר
              קומפיונט
              כתב ב נערך לאחרונה על ידי קומפיונט
              #6

              @pcinfogmach
              במקום:

              return string.Join("\n", nonEmptyLines);
              

              עדיף:

              return string.Join(Environment.NewLine, nonEmptyLines);
              

              אני הייתי עושה את זה גם בשורה הראשונה במקום: new[] { '\r', '\n' }

              yossizY תגובה 1 תגובה אחרונה
              4
              • קומפיונטק קומפיונט

                @pcinfogmach
                במקום:

                return string.Join("\n", nonEmptyLines);
                

                עדיף:

                return string.Join(Environment.NewLine, nonEmptyLines);
                

                אני הייתי עושה את זה גם בשורה הראשונה במקום: new[] { '\r', '\n' }

                yossizY מנותק
                yossizY מנותק
                yossiz
                כתב ב נערך לאחרונה על ידי
                #7

                @קומפיונט כתב בהסרת שורות ריקות מ-string ב-C#:

                אני הייתי עושה את זה גם בשורה הראשונה במקום: new[] { '\r', '\n' }

                לא תמיד מעברי השורה של המחרוזת מתאימים למעבר השורה הדיפולטית של מערכת ההפעלה

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                קומפיונטק תגובה 1 תגובה אחרונה
                5
                • yossizY yossiz

                  @קומפיונט כתב בהסרת שורות ריקות מ-string ב-C#:

                  אני הייתי עושה את זה גם בשורה הראשונה במקום: new[] { '\r', '\n' }

                  לא תמיד מעברי השורה של המחרוזת מתאימים למעבר השורה הדיפולטית של מערכת ההפעלה

                  קומפיונטק מחובר
                  קומפיונטק מחובר
                  קומפיונט
                  כתב ב נערך לאחרונה על ידי קומפיונט
                  #8

                  @yossiz נכון, לכן לא הצעתי את זה, אבל אני אישית הייתי עושה ככה.
                  (כי בינתיים אף פעם לא נתקלתי בבעיה כזאת, ולעשות new[] { '\r', '\n' } כנראה יגרום ליצירת שורות ריקות מיותרות, כי ב-windows שורה חדשה זה: r\n\)

                  M תגובה 1 תגובה אחרונה
                  0
                  • קומפיונטק קומפיונט

                    @yossiz נכון, לכן לא הצעתי את זה, אבל אני אישית הייתי עושה ככה.
                    (כי בינתיים אף פעם לא נתקלתי בבעיה כזאת, ולעשות new[] { '\r', '\n' } כנראה יגרום ליצירת שורות ריקות מיותרות, כי ב-windows שורה חדשה זה: r\n\)

                    M מנותק
                    M מנותק
                    Mordechai 0
                    כתב ב נערך לאחרונה על ידי
                    #9

                    @קומפיונט כתב בהסרת שורות ריקות מ-string ב-C#:

                    @yossiz נכון, לכן לא הצעתי את זה, אבל אני אישית הייתי עושה ככה.
                    (בנתיים אף פעם לא נתקלתי בבעיה כזאת, מעניין באמת מה עדיף)

                    יש הרבה פלטפורמות שהמרחק בין השורות נמדד לפי זה
                    כלומר: \n מרחק קטן (לשימוש בין שורות)
                    \r\n מרחק גדול יותר (לשימוש בין פסקאות)

                    תגובה 1 תגובה אחרונה
                    0
                    • קומפיונטק מחובר
                      קומפיונטק מחובר
                      קומפיונט
                      כתב ב נערך לאחרונה על ידי קומפיונט
                      #10

                      @pcinfogmach עוד אופציה למיטוב ביצועים, זה להשתמש ב - StringBuilder עם AppendLine, ולא עם Where ו - string.Join

                      תגובה 1 תגובה אחרונה
                      1
                      • dovidD מנותק
                        dovidD מנותק
                        dovid
                        ניהול
                        כתב ב נערך לאחרונה על ידי
                        #11

                        @קומפיונט המתודה string.Join נחשבת יעילה.
                        תבדוק.

                        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                        תגובה 1 תגובה אחרונה
                        2
                        תגובה
                        • תגובה כנושא
                        התחברו כדי לפרסם תגובה
                        • מהישן לחדש
                        • מהחדש לישן
                        • הכי הרבה הצבעות


                        בא תתחבר לדף היומי!
                        • התחברות

                        • אין לך חשבון עדיין? הרשמה

                        • התחברו או הירשמו כדי לחפש.
                        • פוסט ראשון
                          פוסט אחרון
                        0
                        • דף הבית
                        • קטגוריות
                        • פוסטים אחרונים
                        • משתמשים
                        • חיפוש
                        • חוקי הפורום