শুধুমাত্র প্রথম উদাহরণে বিভক্ত স্ট্রিং - জাভা


145

আমি একটি স্ট্রিংকে '=' চরিত্র দ্বারা বিভক্ত করতে চাই। তবে আমি এটি কেবল প্রথম উদাহরণে বিভক্ত হতে চাই। আমি এটা কিভাবে করবো ? এখানে '_' চরের জন্য একটি জাভাস্ক্রিপ্ট উদাহরণ রয়েছে তবে এটি কেবল নির্দিষ্ট অক্ষরের প্রথম উদাহরণে আমার জন্য বিভক্ত স্ট্রিংয়ের কাজ করে না

উদাহরণ:

apple=fruit table price=5

আমি যখন স্ট্রিং.স্প্লিট ('=') চেষ্টা করি; এটা দেয়

[apple],[fruit table price],[5]

কিন্তু আমার দরকার

[apple],[fruit table price=5]

ধন্যবাদ


আপনার পালানোর দরকার নেই =
রোহিত জৈন

উত্তর:


282
string.split("=", 2);

হিসাবে String.split(java.lang.String regex, int limit)ব্যাখ্যা:

এই পদ্ধতিতে ফিরে আসা অ্যারেটিতে এই স্ট্রিংয়ের প্রতিটি স্ট্রিং থাকে যা অন্য স্ট্রিং দ্বারা শেষ হয় যা প্রদত্ত এক্সপ্রেশনটির সাথে মেলে বা স্ট্রিংয়ের শেষে শেষ হয়। অ্যারেতে সাবস্ট্রিংগুলি এই স্ট্রিংয়ের সাথে ক্রম হয়। যদি অভিব্যক্তি ইনপুটটির কোনও অংশের সাথে মেলে না তবে ফলাফল প্রাপ্ত অ্যারেটির একটি মাত্র উপাদান রয়েছে, যথা এই স্ট্রিং।

limitপরামিতি বার প্যাটার্ন প্রয়োগ করা হয় সংখ্যা নিয়ন্ত্রণ করে এবং সেইজন্য ফলে অ্যারের দৈর্ঘ্য প্রভাবিত করে। সীমা n যদি শূন্যের চেয়ে বেশি হয় তবে প্যাটার্নটি সর্বাধিক n - 1 বার প্রয়োগ করা হবে , অ্যারের দৈর্ঘ্য n এর চেয়ে বেশি হবে না এবং অ্যারের শেষ এন্ট্রিতে শেষ মিলিত ডিলিমিটারের বাইরে সমস্ত ইনপুট থাকবে।

স্ট্রিং boo:and:foo, উদাহরণস্বরূপ, এই পরামিতিগুলির সাথে নিম্নলিখিত ফলাফলগুলি সরবরাহ করে:

Regex Limit    Result
:     2        { "boo", "and:foo" }
:     5        { "boo", "and", "foo" }
:    -2        { "boo", "and", "foo" }
o     5        { "b", "", ":and:f", "", "" }
o    -2        { "b", "", ":and:f", "", "" }
o     0        { "b", "", ":and:f" }

1
এটি বুঝতে বিভ্রান্তিকর তবে এটি কেবল কার্যকর! ধন্যবাদ!
ক্লিন্ট ইস্টউড

4
কিছু স্পষ্টতা: সীমা 2 এটি 2 টি বেশিরভাগ উপাদানের একটি তালিকা ফিরিয়ে দেবে। এক্সপ্রেশনটির সাথে কোনও মিল না থাকলে এটি 1 টি উপাদানের একটি তালিকা ফিরে আসতে পারে। অভিব্যক্তিতে 2 টি মিল থাকলে, ফিরে আসা অ্যারের দ্বিতীয় উপাদানটি বিভক্ত হবে না।
মোডলে 13


5

অন্যান্য অনেক উত্তর সীমাবদ্ধতার পদ্ধতির পরামর্শ দেয়, এটি অন্য উপায় হতে পারে

আপনি ব্যবহার করতে পারেন indexOf মধ্যে স্ট্রিং উপর পদ্ধতি যা আয় দেওয়া চরিত্র প্রথম Occurance, যে সূচক ব্যবহার হবে আপনার পছন্দসই আউটপুট পেতে পারেন

String target = "apple=fruit table price=5" ;
int x= target.indexOf("=");
System.out.println(target.substring(x+1));

2
এটি বিভক্ত হয় না তবে দ্বিতীয় অংশটি বের করে। প্রথম অংশটি গ্রহণের জন্য আরও একটি লাইন কোডের প্রয়োজন হবে ... 4 টি লাইন বনাম 1 = থাম্বস ডাউন
ক্লিন্ট ইস্টউড

0

এই কোডটি ব্যবহার করে দেখুন ...

ইহা কাজ করছে.

public class Split
{
    public static void main(String...args)
    {
        String a = "%abcdef&Ghijk%xyz";
        String b[] = a.split("%", 2);

        System.out.println("Value = "+b[1]);
    }
}

0
String string = "This is test string on web";
String splitData[] = string.split("\\s", 2);

Result ::
splitData[0] =>  This
splitData[1] =>  is test string  


String string = "This is test string on web";
String splitData[] = string.split("\\s", 3);

Result ::
splitData[0] =>  This
splitData[1] =>  is
splitData[1] =>  test string on web

ডিফল্ট বিভক্ত পদ্ধতিতে প্রদত্ত রেজেক্সের ভিত্তিতে অ্যারের সংখ্যা সংখ্যা তৈরি করুন। আপনি যদি একটি পূর্ণসংখ্যার যুক্তি হিসাবে দ্বিতীয় আর্গুমেন্ট পাসের চেয়ে একটি বিভাজনের পরে তৈরি করতে অ্যারে সংখ্যার সীমাবদ্ধ রাখতে চান।


3
সমস্যা কি ছিল? আপনার উত্তরটি স্বতঃব্যক্তিকর করতে আরও বিশদ অন্তর্ভুক্ত করুন!
পরেশ মায়ানী

-2
String[] func(String apple){
String[] tmp = new String[2];
for(int i=0;i<apple.length;i++){
   if(apple.charAt(i)=='='){
      tmp[0]=apple.substring(0,i);
      tmp[1]=apple.substring(i+1,apple.length);
      break;
   }
}
return tmp;
}
//returns string_ARRAY_!

আমি নিজের পদ্ধতি লিখতে পছন্দ করি :)


3
এই পদ্ধতিটি খুব বেশি কার্যকর নয়, কারণ বিভাজকটি হার্ডকোডযুক্ত। তদ্ব্যতীত, ফর-লুপের সাথে লিনিয়ার সন্ধানের প্রয়োগটি প্রথম বিভাজকের অবস্থান সন্ধান করার জন্য স্ট্রিং.ইন্ডেক্সঅফ ব্যবহার করে কোনও লাভ করে না। তৃতীয়ত, স্ট্রিংয়ের কতগুলি উপাদান ফিরে আসে তা দেখার জন্য স্বজ্ঞাত নয়। আমরা জিনিসগুলিকে দুটি ভাগে ভাগ করার বিষয়ে কথা বলি, জোড় <স্ট্রিং, স্ট্রিং> ডেটা টাইপ ব্যবহার করা বিবেচনা করুন যা অ্যারে তৈরির পরিবর্তে ঠিক দুটি স্ট্রিং উপস্থাপন করে।
জি বি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.