علامت گذاری را از رشته ای در جاوا حذف کنید

در طول پردازش متن، چه در حال جستجو برای کلمات خاص و ایجاد قوانین تطبیق الگو، شمارش فراوانی عناصر، و غیره باشید - علائم نگارشی می تواند در برنامه های شما آچاری ایجاد کند.

اغلب اوقات، شما می خواهید کلمات توقف، علائم نگارشی، اعداد یا موارد دیگر را حذف کنید برخی از دسته بندی شخصیت ها، بسته به اینکه هدف نهایی شما چیست.

در این آموزش کوتاه، نحوه حذف علائم نگارشی از یک رشته در جاوا را بررسی خواهیم کرد.

حذف علائم نگارشی از رشته با RegEx (عبارات منظم)

عبارات منظم در اینجا یک تناسب بسیار طبیعی هستند، هم به این دلیل که احتمالاً بخشی از سایر بخش‌های پردازشی هستند و هم به این دلیل که تطبیق‌دهنده الگوی کارآمد هستند! در جاوا، عبارت منظم برای تطبیق علائم نگارشی است p{Punct} یا کوتاه نویسی p{P}.

شما باید از اولین بک اسلش در یک رشته فرار کنید، بنابراین حذف تمام علائم نگارشی معادل تطبیق آنها و جایگزینی با یک کاراکتر خالی است:

String.replaceAll("p{P}", "")

بیایید آن را به یک جمله ساده اعمال کنیم:

String text = "Hi! This is, in effect, a synthetic sentence. It's meant to have several punctuation characters!";
String clean = text.replaceAll("p{P}", "");
System.out.println(clean);

این نتیجه در:

Hi This is in effect a synthetic sentence Its meant to have several punctuation characters

بیایید نگاهی بیندازیم به چه شخصیت هایی در اینجا به عنوان نقطه گذاری در نظر گرفته می شوند:

String text = "!#$%&'()*+,-./:;[email protected][]^_`{|}~";
String clean = text.replaceAll("p{P}", "");
System.out.println(clean);

با این کاراکترهای خاص - که بعد از حذف علائم نگارشی باقی می مانند؟

$+^`|~

نقطه گذاری را از رشته بدون RegEx حذف کنید

اگر نمی‌خواهید از عبارات منظم استفاده کنید، می‌توانید هنگام تکرار هر کاراکتر یک رشته، یک بررسی دستی انجام دهید. به یاد داشته باشید که از a استفاده کنید StringBuffer به جای یک String در حین انجام این کار، از آنجایی که رشته ها تغییر ناپذیر هستند و هر بار که می خواهید یک کاراکتر اضافه کنید، باید کپی تهیه کنید - بنابراین می خواهید ایجاد کنید string.length تعداد رشته ها در حافظه

StringBuffer قابل تغییر است و در پایان فرآیند به راحتی می توان آن را به یک رشته غیرقابل تغییر تبدیل کرد:

راهنمای عملی و عملی ما برای یادگیری Git را با بهترین روش ها، استانداردهای پذیرفته شده در صنعت و برگه تقلب شامل بررسی کنید. دستورات Google Git را متوقف کنید و در واقع یاد گرفتن آی تی!

public static String removePunctuations(String s) {
    StringBuffer buffer = new StringBuffer();
    for (Character c : s.toCharArray()) {
        if(Character.isLetterOrDigit(c))
            buffer.append(c);
    }
    return buffer.toString();
}

بیایید یک رشته ایجاد کنیم و آن را تمیز کنیم:

String text = "Hello! nHere are some special characters: !#$%&'()*+,-./:;[email protected][]^_`{|}~ nWhere are they? :(n";
System.out.println(text);
String clean = removePunctuations(text);
System.out.println(clean);
Hello! 
Here are some special characters: !#$%&'()*+,-./:;[email protected][]^_`{|}~ 
Where are they? :(

HelloHerearesomespecialcharactersWherearethey

در حالی که این فرآیند قابل تنظیم تر است، فقط حروف و اعداد را بررسی می کند. می‌توانید به صورت دستی کدهای کاراکتر را بررسی کنید، و به جای آن فقط برخی از نویسه‌های نقطه‌گذاری را حذف کنید - و در فواصل سفید، خط شکن و غیره رها کنید.

نتیجه

در این آموزش کوتاه، نگاهی انداختیم به اینکه چگونه می‌توانید با استفاده از عبارات منظم یا بررسی دستی در یک رشته جاوا، علائم نگارشی یا برخی از کاراکترهای خاص را از یک رشته در جاوا حذف کنید. for حلقه

تمبر زمان:

بیشتر از Stackabuse