ডিলিমিটারের সাথে স্ট্র্লিং বিভাজন


96

আমি বর্তমানে একটি স্ট্রিং বিভক্ত করার চেষ্টা করছি 1128-2যাতে আমার দুটি পৃথক মান থাকতে পারে। উদাহরণস্বরূপ, মান 1: 1128 এবং মান 2: 2, যাতে আমি প্রতিটি মান পৃথকভাবে ব্যবহার করতে পারি। আমি চেষ্টা করেছি split()কিন্তু কোন সাফল্য নেই। গ্রিলস এটি পরিচালনা করার কোনও নির্দিষ্ট উপায় আছে, না এটি করার আরও ভাল উপায়?


আমি কৌতূহল করছি কেন এটি কেবল বিচ্ছেদ নিয়ে কাজ করেনি? (a, b) = "ab" .স্প্লিট ("-") আমার পক্ষে ভাল কাজ করে (এবং আমি বিশ্বাস করি এটি জাভাতেও কাজ করবে)। আমি সব সময় এটি ব্যবহার। সম্পাদনা করুন: কেবল এটিকে দেখার জন্য এগুলি কিছুটা পৃথক - বিভক্ত একটি অ্যারে প্রদান করে যখন টোকেনাইজ একটি অ্যারেলিস্ট প্রদান করে। গ্রোভিতে কার্যত একই জিনিস, বিভাজনের সুবিধাটি এটি জাভাতে সহজেই পোর্ট করে, আমি মনে করি না টোকনাইজিং স্ট্রিংয়ের একটি জাভা পদ্ধতি (যদি না এটি মোটামুটি নতুন এবং আমি এটি মিস না করি)
বিল কে

উত্তর:


175

চেষ্টা করুন:

def (value1, value2) = '1128-2'.tokenize( '-' )

31
এটি splitবনাম tokenize টোটেনইউওব্লব
ব্লগ

4
ওহ, এবং যদি আপনি পাইপের মতো নির্দিষ্ট অক্ষরগুলিতে বিভক্ত হন তবে সাবধান হন |। আপনি গৃহস্থালির কাজ অব্যাহতি প্রয়োজন হবে stackoverflow.com/questions/3842537/...
Snekse

4
হ্যাঁ,
কোস

63

কেমন ডাকছে split? এটি এর মতো কাজ করে:

def values = '1182-2'.split('-')
assert values[0] == '1182'
assert values[1] == '2'

10
আমি মনে করি এটি একটি প্রান্তের কেস যুক্ত করা খুব দরকারী যা আপনি '' এর দ্বারা বিভক্ত হয়ে যাওয়ার পরে চালাতে পারেন। ' চর আপনি যদি আক্ষরিক বিন্দুতে বিভক্ত করতে চান তবে আপনাকে অবশ্যই বিন্দু থেকে বাঁচতে হবে: String extensionRemoved = filename.split("\\.")[0]; অন্যথায় আপনি রেজেক্সে বিভক্ত হচ্ছেন, যার অর্থ "কোনও চরিত্র"। রেগেক্সে একক ব্যাকস্ল্যাশ তৈরি করতে প্রয়োজনীয় ডাবল ব্যাকস্ল্যাশটি নোট করুন।
এক্সকিউয়েল ব্যারিয়ারো

তার জন্য ধন্যবাদ. যতটা সম্ভব মানুষকে বিভ্রান্ত করার জন্য এই পদ্ধতিটি লেখা হয়েছিল।
ডাস্টিন ওরেপা 23'19

@ এক্সেকুইয়েল বারারিওরো সেই মন্তব্যটি আমার জীবন বাঁচিয়েছে
user3692823

23

def (value1, value2) = '1128-2'.split('-') কাজ করা উচিত.

গ্রোভি কনসোল-এ কেউ চেষ্টা করে দেখতে পারেন?

def (v, z) =  '1128-2'.split('-')

assert v == '1128'
assert z == '2'

4
আমার এটির সাথে সমস্যা ছিল, আপনি যদি কিছু ধরণের রেইগেক্স চার্সের মতো বিভক্ত করতে চান। বা *। আপনার এড়াতে হবে, টোকানাইজ সেই ক্ষেত্রেও কাজ করে।
19-24 এ


4

বিভাজন গ্রোভির মতো কাজ করে না। আপনাকে টোকেনাইজ ব্যবহার করতে হবে ...

দস্তাবেজগুলি দেখুন:

http://groovy-lang.org/gdk.html#split ()


বিভাজন আসলে ঠিক কাজ করে, বোঝা ভুল, দয়া করে নীচে দেখুন, স্ট্রিং [] split_Comma_ByProperty = স্ট্রিংইউওয়ান্টস্প্লিট.স্প্লিট (",");
1:10

0
dependencies {
   compile ('org.springframework.kafka:spring-kafka-test:2.2.7.RELEASE') { dep ->
     ['org.apache.kafka:kafka_2.11','org.apache.kafka:kafka-clients'].each { i ->
       def (g, m) = i.tokenize( ':' )
       dep.exclude group: g  , module: m
     }
   }
}

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