রেজিএক্স ব্যতীত স্ট্রিং.রেপলস


115

আমি স্ট্রিংয়ের সমস্ত স্ট্রান্সিংয়ের উদাহরণগুলি প্রতিস্থাপন করতে চাই তবে String.replaceAll()কেবল একটি প্যাটার্ন গ্রহণ করে। স্ট্রিংটি আমি আগের ম্যাচ থেকে এসেছি। আমার যে প্যাটার্নটিতে রয়েছে সেগুলিতে কি পলায়ন যুক্ত করা সম্ভব বা replaceAll()অন্য শ্রেণীর এমন কোনও সংস্করণ রয়েছে যা প্যাটার্নের পরিবর্তে আক্ষরিক স্ট্রিং গ্রহণ করে?


উত্তর:


189

String.replace(CharSequence,CharSequence)বরং ব্যবহার করুন replaceAll


13
এটি কেবল প্রথমটি প্রতিস্থাপন করে না? অদ্ভুত তারা এটিকে "রিপ্লেসরেজেক্স" এর পরিবর্তে "প্রতিস্থাপন সমস্ত" বলে অভিহিত করেছে।
ম্যাজিক অক্টোপাস উর্ন 20

6
System.out.println("hello world, hello life, hello you".replace("hello","hi"));আয় "hi world, hi life, hi you"
থিয়াগো মাতা

14
@ ম্যাজিক অ্যাক্টোপাস উর্ন: হ্যাঁ, আমি সম্মত হলাম এটি খুব খারাপ নামকরণ ছিল - এটি সময়ের সাথে সাথে অনেক বিভ্রান্তির সৃষ্টি করে।
জন স্কিটি

পদ্ধতিগুলির খুব খারাপ নামকরণ। কেন তারা (সূর্য / ওরাকল) সাধারণ জিনিসগুলিকে জটিল করে তোলে
স্টানার

93

পলায়ন যোগ করার পদ্ধতিটি হ'ল Pattern.quote()

String replaced = myString.replaceAll(Pattern.quote(matchingStr), replacementStr)

তবে জন বলেছেন যে আপনি কেবল ব্যবহার করতে পারেন replace()। এটি replaceAllনাম থেকে বিচ্যুত হওয়া সত্ত্বেও , এটি সমস্ত ঘটনাকে ঠিক এর মতো করে প্রতিস্থাপন করে replaceAll()


উদাহরণস্বরূপ আপনার মিলে যাওয়া স্ক্রিনে "$" থাকলে পুরোপুরি কাজ করে Works
জুলিয়েন লাফন্ট

বরং প্যাটার্ন.কম.পাইল (); প্যাটার্ন.কোটা () অনাকাঙ্ক্ষিত ফলাফল এনেছে
পাভলো জাভেরিচ

@ পাভলোজ্যাচারিচ: Pattern.compile()স্ট্রিংটিকে একটি নিয়মিত ভাব হিসাবে সংকলন করে, যার অর্থ বিশেষ অক্ষরগুলির বিশেষ অর্থ দেওয়া হবে। এটি যা করে তার সম্পূর্ণ বিপরীত Pattern.quote(), এবং ওপি যা চেয়েছিল তা quote()বলেছে ( "স্ট্রিংটিকে আক্ষরিক হিসাবে বিবেচনা করুন")। আপনি যে "অনাকাঙ্ক্ষিত ফলাফল" এর কথা বলছেন তা নিয়ে আপনি প্রসারিত করতে পারেন।
মার্ক পিটারস

@ মার্কপিটারগুলি এটি "$ 1" এর জন্য \\ G1 \\ জি এর মতো কিছু ছিল
পাভলো জাভেরিচ

1
@ পাভলোজ্যারিচ: আপনি যদি প্রতিস্থাপনটি উদ্ধৃত করার চেষ্টা করছেন (এবং অনুসন্ধানের ধরণটি নয়), আপনি ব্যবহার করতে চান Matcher.quoteReplacement("$aa +")Pattern.compile()একটি Pattern, একটি নয় উত্পাদন করে Stringতাই আপনি কীভাবে এটি কীভাবে ব্যবহার করছেন তা আমার কাছে অস্পষ্ট replaceAll
মার্ক পিটারস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.