স্ট্রিংকে চারসেকেন্সে কীভাবে রূপান্তর করবেন?


265

কিভাবে রূপান্তর করতে Stringকরতে CharSequenceজাভা?


16
প্রশ্নটি একধরনের সংবেদনশীল। একটি স্ট্রিংকে চারসেকুয়েন্সে রূপান্তর করা বাদ্যকে বাদ্যযন্ত্রে রূপান্তরিত করার মতো। একটি স্ট্রিং ইতিমধ্যে একটি CharSequence। স্ট্রিং ক্লাসটি চারসেকেন্স ইন্টারফেস প্রয়োগ করে।
জেফ স্কট ব্রাউন


9
@ জেফস্কটব্রাউন প্রশ্নটি আসলেই বোঝা যায়, অ্যান্ড্রয়েড বা জাভা ডকটির মাধ্যমে পড়া এবং চারসেকেন্স কোনও শ্রেণি নয় এমন বিশদটি হারিয়ে যাওয়া যে কারও কাছে এটি বৈধ বিস্ময়। আপনার মন্তব্যটি আমাকে সাহায্য করেছিল, তবে যদি প্রশ্নটি যেমন হয় ঠিক
তেমনটি

আমি একটি গ্রোভি সমস্যার প্রসঙ্গে এই প্রশ্নে এসেছি: Exception groovy.lang.MissingMethodException: No signature of method: static java.util.regex.Pattern.matcher() is applicable for argument types: (java.lang.String)
ব্ল্যাকই

@ জেফস্কটব্রাউনকে তার মন্তব্যে উচ্চারণ করার জন্য আমি কীভাবে পরামর্শ দিচ্ছি- "স্ট্রিং ক্লাস প্রয়োগগুলি (আইএস-এ) চারসেকেন্স ইন্টারফেস যাতে আপনি চরসিকিউনেন্সের জায়গায় একটি স্ট্রিংয়ে পাস করতে পারেন It's এটি এমনই you বাদ্যযন্ত্র কারণ একটি বাঁশি IS-A বাদ্যযন্ত্র "
বিঘ্নেশ

উত্তর:


261

যেহেতু String is-একজন CharSequence , আপনি একটি পাস করতে পারেন Stringযেখানে আপনি একটি প্রয়োজন CharSequence, অথবা একটি দায়িত্ব অর্পণ Stringএকটি থেকে CharSequence:

CharSequence cs = "string";
String s = cs.toString();
foo(s); // prints "string"

public void foo(CharSequence cs) { 
  System.out.println(cs);
}

আপনি যদি একটি রূপান্তর করতে চান CharSequenceএকটি থেকে Stringশুধু ব্যবহার toStringপদ্ধতি যা প্রতিটি কংক্রিট বাস্তবায়নের দ্বারা প্রয়োগ করা আবশ্যক CharSequence

আশা করি এটা সাহায্য করবে.


13
ব্যতীত যে আপনি একটি ধার্য করতে পারেন না CharSequenceএকটি থেকে Stringএকটি সুনির্দিষ্ট ঢালাই ছাড়া।
গুস্তাফ্যাক

1
ধন্যবাদ, উদাহরণ স্থির। আমি অন্য উপায় কাছাকাছি বোঝানো, অর্থাত্, একটি বরাদ্দ Stringএকটি থেকে CharSequence
জোও সিলভা 0

4
আপনি সঠিক. এটি আসলে একটি ইন্টারফেস। তবে, কোডটি তত্ক্ষণাতীত করে না CharSequence। এটি কেবল Stringএকটি CharSequenceভেরিয়েবলের একটি উদাহরণ নির্ধারণ করে এবং যেহেতু ইন্টারফেসটি Stringপ্রয়োগ CharSequenceকরে কোডটি কাজ করে।
জোও সিলভা

5
এটি উত্তর নয়। প্রশ্নটি স্ট্রিং -> থেকে -> চারসেকেন্স। উত্তর বিপরীত।
trante

3
এটি উভয় উত্তর। পোস্টারটি প্রথমে তুচ্ছভাবে স্ট্রিং -> চারসিকোয়েন্স সমস্যার সমাধান করে যে স্ট্রিং একটি চারসেকুইনেন্স। তারপরে পোস্টার উত্তর দেয় যে কীভাবে চারসেকেন্স থেকে স্ট্রিংয়ে যাবে।
অ্যালেক্স এ।

62

সোজা উত্তর:

String s = "Hello World!";

// String => CharSequence conversion:

CharSequence cs = s;  // String is already a CharSequence

CharSequenceএকটি ইন্টারফেস, এবং Stringশ্রেণি প্রয়োগসমূহ CharSequence


13

চারসেকেন্স একটি ইন্টারফেস এবং স্ট্রিংবিল্ডার, স্ট্রিংবফার এবং অন্যান্য অনেকগুলি ছাড়া স্ট্রিং এর বাস্তবায়নগুলির মধ্যে একটি।

সুতরাং, আপনি যেমন ব্যবহার করেন তেমনি আপনি বা সহজভাবে InterfaceName i = new ItsImplementation()ব্যবহার করতে পারেনCharSequence cs = new String("string")CharSequence cs = "string";


3

তুমি ব্যবহার করতে পার

CharSequence[] cs = String[] {"String to CharSequence"};

8
স্ট্যাক ওভারফ্লো লুকাসে আপনাকে স্বাগতম। একটি কোড স্নিপেট চেয়ে আরও ব্যাখ্যা প্রদান করুন। এটি আমাদের পক্ষে সুস্পষ্ট হতে পারে তবে এই কোডটি কেন প্রশ্নের উত্তর দেয় তা অন্যদের জানাতে তাদের সহায়তা করুন।
জিন-রেমি রেভি

একটি অ্যারেতে একটি স্ট্রিং মোড়ানো একটি বিন্দু তৈরি করতে সহায়তা করে না যে স্ট্রিং একটি চারসেকেন্স (এবং সেইজন্য CharSequence এর অ্যারে স্ট্রিংয়ের অ্যারে)।
তিশমা

1
CharSequence [] সিএস = নতুন চারসেকেন্স [] {"স্ট্রিং টু চারসেকেন্স"};
আভেজ রাজ

1

আমার নিজের সমস্যা পোস্ট করে ওপির প্রশ্নের কিছু (সম্ভাব্য) প্রসঙ্গ সরবরাহ করার চেষ্টা করা হচ্ছে। আমি Scala মধ্যে কাজ করছি, কিন্তু ত্রুটি বার্তা আমি সব রেফারেন্স জাভা ধরনের পেয়ে করছি, এবং ত্রুটি বার্তা কম্পাইলার মত অনেক অভিযোগ যে CharSequence হয় সার্চ না একটি পংক্তি। আমি উত্স কোডে নিশ্চিত করেছি যে স্ট্রিং চারসেকেন্স ইন্টারফেসটি প্রয়োগ করে, তবে ত্রুটি বার্তাটি সমস্যার আসল উত্সটি লুকিয়ে রেখে স্ট্রিং এবং চারসেকেন্সের মধ্যে পার্থক্যের দিকে দৃষ্টি আকর্ষণ করে:

scala> cols
res8: Iterable[String] = List(Item, a, b)

scala> val header = String.join(",", cols)
<console>:13: error: overloaded method value join with alternatives:
  (x$1: CharSequence,x$2: java.lang.Iterable[_ <: CharSequence])String <and>
  (x$1: CharSequence,x$2: CharSequence*)String
 cannot be applied to (String, Iterable[String])
       val header = String.join(",", cols)

আমি বুঝতে পারলাম যে সমস্যাটি স্ট্রিং / চারসেকেন্স নয়, বরং জাভা.এলএং.এরেটেবল এবং স্কেলার বিল্ট-ইন ইটারেবলের মধ্যে একটি মিল নয় the

scala> val header = String.join(",", coll: _*)
header: String = Item,a,b

আমার বিশেষ সমস্যাটি স্কালায় উত্তরের মাধ্যমেও সমাধান করা যেতে পারে : একটি পুনরাবৃত্ত স্ট্রিংগুলিতে যোগ দিন

সংক্ষেপে, ওপি এবং অন্যান্য যারা একই ধরণের সমস্যার মুখোমুখি হয় তাদের ত্রুটি বার্তাগুলিকে খুব কাছ থেকে পার্স করা উচিত এবং অন্যান্য ধরণের রূপান্তরগুলিতে কীভাবে জড়িত থাকতে পারে তা দেখতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.