আমি কোনও প্রদত্ত স্ট্রিং থেকে কীভাবে একটি স্ট্রিং সরিয়ে ফেলতে পারি?


190

Stringজাভাতে প্রদত্ত থেকে সাবস্ট্রিং সরানোর কী সহজ উপায় আছে ?

উদাহরণ "Hello World!":, অপসারণ "o""Hell Wrld!"

উত্তর:



9

আপনি স্ট্রিংবফার ব্যবহার করতে পারেন

StringBuffer text = new StringBuffer("Hello World");
text.replace( StartIndex ,EndIndex ,String);

8

পরীক্ষা করে দেখুন এ্যাপাচি StringUtils :

  • static String replace(String text, String searchString, String replacement) অন্য স্ট্রিংয়ের মধ্যে একটি স্ট্রিংয়ের সমস্ত উপস্থিতি প্রতিস্থাপন করে।
  • static String replace(String text, String searchString, String replacement, int max) স্ট্রিংয়ের প্রথম সর্বাধিক মানগুলির জন্য একটি স্ট্রিংকে আরও বড় স্ট্রিংয়ের সাথে প্রতিস্থাপন করে।
  • static String replaceChars(String str, char searchChar, char replaceChar) স্ট্রিংয়ের একটি চরিত্রের সমস্ত উপস্থিতিকে অন্যের সাথে প্রতিস্থাপন করে।
  • static String replaceChars(String str, String searchChars, String replaceChars) একসাথে স্ট্রিংয়ের একাধিক অক্ষর প্রতিস্থাপন করে।
  • static String replaceEach(String text, String[] searchList, String[] replacementList) স্ট্রিংয়ের সমস্ত উপস্থিতি অন্য স্ট্রিংয়ের মধ্যে প্রতিস্থাপন করে।
  • static String replaceEachRepeatedly(String text, String[] searchList, String[] replacementList) স্ট্রিংয়ের সমস্ত উপস্থিতি অন্য স্ট্রিংয়ের মধ্যে প্রতিস্থাপন করে।
  • static String replaceOnce(String text, String searchString, String replacement) বড় স্ট্রিংয়ের মধ্যে একবারে একটি স্ট্রিংকে অন্য স্ট্রিংয়ের সাথে প্রতিস্থাপন করে।
  • static String replacePattern(String source, String regex, String replacement) উত্স স্ট্রিংয়ের প্রতিটি স্ট্রিং প্রতিস্থাপন করে যা প্যাটার্ন.ডটল বিকল্পটি ব্যবহার করে প্রদত্ত প্রতিস্থাপনের সাথে প্রদত্ত নিয়মিত অভিব্যক্তির সাথে মেলে।

1
সবেমাত্র প্রতিস্থাপনের প্যাটার্নটি বেঞ্চমার্ক করেছে এবং এটি কাস্টম জাভা কোড চালানোর চেয়ে 6x ধীর।
অ্যালেক্স আরভানিতিডিস


4

এটি আমার পক্ষে ভাল কাজ করে।

String hi = "Hello World!"
String no_o = hi.replaceAll("o", "");

অথবা আপনি ব্যবহার করতে পারেন

String no_o = hi.replace("o", "");

3

আপনাকে অবশ্যই দেখতে হবে StringBuilder/StringBufferযা নির্দিষ্ট অফসেটে চর (গুলি) মুছে ফেলতে, সন্নিবেশ করতে, প্রতিস্থাপন করতে দেয় ।



1
replaceAll(String regex, String replacement)

উপরের পদ্ধতিটি উত্তর পেতে সহায়তা করবে।

String check = "Hello World";
check = check.replaceAll("o","");

1

আপনি বিদ্যমান স্ট্রিংয়ের পরিবর্তে সাবস্ট্রিং ব্যবহার করতে পারেন:

var str = "abc awwwa";
var Index = str.indexOf('awwwa');
str = str.substring(0, Index);

0

প্রদত্ত স্ট্রিং থেকে সমস্ত সাবস্ট্রিংগুলি মুছতে এখানে বাস্তবায়ন দেওয়া আছে

public static String deleteAll(String str, String pattern)
{
    for(int index = isSubstring(str, pattern); index != -1; index = isSubstring(str, pattern))
        str = deleteSubstring(str, pattern, index);

    return str;
}

public static String deleteSubstring(String str, String pattern, int index)
{
    int start_index = index;
    int end_index = start_index + pattern.length() - 1;
    int dest_index = 0;
    char[] result = new char[str.length()];


    for(int i = 0; i< str.length() - 1; i++)
        if(i < start_index || i > end_index)
            result[dest_index++] = str.charAt(i);

    return new String(result, 0, dest_index + 1);
}

#Substring () পদ্ধতির প্রয়োগ এখানে রয়েছে


0
private static void replaceChar() {
    String str = "hello world";
    final String[] res = Arrays.stream(str.split(""))
            .filter(s -> !s.equalsIgnoreCase("o"))
            .toArray(String[]::new);
    System.out.println(String.join("", res));
}

চরটি ফিল্টার করার জন্য আপনার কাছে কিছু জটিল যুক্তি রয়েছে তবে তার পরিবর্তে আরও একটি উপায় replace()


0

আপনি যদি সূচনা এবং শেষ সূচকটি জানেন তবে আপনি এটি ব্যবহার করতে পারেন

string = string.substring(0, start_index) + string.substring(end_index, string.length());
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.