জাভায় চারসেকেন্স ভিএস স্ট্রিং?


421

অ্যান্ড্রয়েডে প্রোগ্রামিং, বেশিরভাগ পাঠ্য মান প্রত্যাশিত CharSequence

কেন এমন? সুবিধা কী এবং CharSequenceওভার ব্যবহারের প্রধান প্রভাবগুলি Stringকী?

মূল পার্থক্যগুলি কী কী এবং কোন বিষয়গুলি প্রত্যাশিত, সেগুলি ব্যবহার করার সময় এবং একটি থেকে অন্যে রূপান্তরিত হয়?


উত্তর:


343

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


94
অ্যান্ড্রয়েড যখন কলব্যাকে আমাকে চারসিকোয়েন্সটি পাস করে এবং আমার কাছে একটি স্ট্রিং দরকার হয় - কল চারসেক.টোস্ট্রিং ()।
মার্টিন কোনিসেক

100
তবে CharSequenceজাভাদোক থেকে এই সাবধানতাটি মনে রাখবেন: এই ইন্টারফেসটি সাধারণ পদ্ধতিগুলি equalsএবং hashCodeপদ্ধতিগুলির সংশোধন করে না । দুটি বস্তুর যে বাস্তবায়ন তুলনা ফল CharSequenceতাই সাধারণভাবে হয় অনির্দিষ্ট । প্রতিটি বস্তু একটি পৃথক শ্রেণীর দ্বারা প্রয়োগ করা যেতে পারে এবং এর কোনও গ্যারান্টি নেই যে প্রতিটি শ্রেণি অন্যের সাথে সমতার জন্য এর উদাহরণগুলি পরীক্ষা করতে সক্ষম হবে। সুতরাং কোনও CharSequenceসেটের উপাদান হিসাবে বা মানচিত্রে কী হিসাবে স্বেচ্ছাসেবী দৃষ্টান্তগুলি ব্যবহার করা অনুচিত ।
ট্রেভর রবিনসন

3
@ পেসারিয়র: আমি মনে করি এটি ব্যবহারিক সীমাবদ্ধতা বেশি। CharSequenceচরিত্রের সিকোয়েন্স যুক্ত বস্তুগুলিতে সীমিত-উদ্দেশ্য সাধারণ ইন্টারফেসটি প্রবর্তনের জন্য জেডিকে ১.৪ এ একটি পুনঃপ্রদান ছিল। এই বস্তুগুলির মধ্যে কিছুতে অন্য রাজ্য রয়েছে, সুতরাং এটি Object.equals"একই চরিত্রের ক্রম রয়েছে" হিসাবে সংজ্ঞায়িত করা বুদ্ধিমান হতে পারে না । এনআইও CharBufferউদাহরণস্বরূপ, সম্ভাব্যভাবে অন্যান্য অনেকগুলি অক্ষর থাকা সত্ত্বেও কেবলমাত্র positionএবং এর মধ্যে অক্ষরগুলিই কেবল প্রকাশ করে । limitCharSequence
ট্রেভর রবিনসন

6
@ ট্রেভররোবিনসন, তাই ডিজাইনের বাগটি প্রথম স্থানে চলছে equals/ hashCodeচলছে Object....
পেসারিয়ার

4
@ পেসারিয়র: আইএমএইচও তেমন কোনও ডিজাইনের বাগ নেই Objectবা CharSequenceবাস্তবায়নের মধ্যে সমতা বিচ্ছিন্নতার জন্য কোনও ইন্টারফেসের প্রয়োজন নেই। ইন্টারফেসের Collectionমধ্যে সমতা প্রদানের জন্য কোনও দু'জনের প্রয়োজন হয় না Collection, তবে তারা যদি চয়ন করে তবে তা করতে পারে। আইএমএইচও CharSequenceইনপুটগুলির মধ্যে সীমাবদ্ধ থাকতে হবে এবং রিটার্নের ধরণের জন্য কম ব্যবহার করা উচিত।
ব্রেট রায়ান

58

CharSequence= ইন্টারফেস
String= কংক্রিট বাস্তবায়ন

তুমি বলেছিলে:

এক থেকে অন্য রূপান্তর

থেকে কোন রূপান্তর হয় না String

  • প্রতিটি Stringবস্তুর হয় একটি CharSequence
  • প্রতিটি CharSequenceএকটি উত্পাদন করতে পারেন String। কল করুন CharSequence::toString। যদি CharSequenceঘটনাটি একটি হয়ে থাকে String, তবে পদ্ধতিটি তার নিজস্ব অবজেক্টের একটি রেফারেন্স দেয়।

অন্য কথায়, প্রত্যেকটি Stringএকটি CharSequence, তবে প্রত্যেকটি CharSequenceএক নয় String

একটি ইন্টারফেস প্রোগ্রামিং

অ্যান্ড্রয়েডে প্রোগ্রামিং, বেশিরভাগ পাঠ্য মান চারসেকেন্সে প্রত্যাশিত।

কেন এমন? সুবিধা কী এবং স্ট্রিং ওভার চারসিকোয়েন্স ব্যবহারের প্রধান প্রভাবগুলি কী?

সাধারণত, ইন্টারফেসে প্রোগ্রামিং করা কংক্রিটের ক্লাসে প্রোগ্রামিংয়ের চেয়ে ভাল। এটি নমনীয়তা দেয়, সুতরাং আমরা অন্যান্য কোড ভঙ্গ না করে একটি নির্দিষ্ট ইন্টারফেসের কংক্রিট বাস্তবায়নের মধ্যে স্যুইচ করতে পারি।

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

উদাহরণস্বরূপ, জাভা সংগ্রহ ফ্রেমওয়ার্কটি দেখুন । আপনার এপিআই দেয় বা বস্তু আদেশ সংগ্রহে নেয়, যেমন ব্যবহার করে আপনার পদ্ধতি ঘোষণা Listবদলে ArrayList, LinkedListঅথবা অন্য কোন 3rd পার্টি বাস্তবায়ন List

আপনার কোড দ্বারা কেবলমাত্র নির্দিষ্ট জায়গায় ব্যবহার করার জন্য দ্রুত এবং নোংরা সামান্য পদ্ধতি লেখার সময়, একাধিক জায়গায় ব্যবহার করার জন্য একটি এপিআই লেখার বিপরীতে, নির্দিষ্ট কংক্রিটের পরিবর্তে আপনাকে আরও সাধারণ ইন্টারফেস ব্যবহার করে বিরক্ত করার প্রয়োজন নেই you বর্গ। তবুও এটি আপনার পক্ষে সবচেয়ে সাধারণ ইন্টারফেস ব্যবহার করতে ক্ষতি করে।

মূল পার্থক্যগুলি কী এবং কী কী সমস্যা প্রত্যাশিত তা ব্যবহার করার সময়,

  • একটির মাধ্যমে Stringআপনি জানেন যে আপনার কাছে একক টুকরো টেক্সট রয়েছে, সম্পূর্ণ স্মৃতিতে এবং স্থাবর।
  • একটি সহ CharSequence, আপনি জানেন না কংক্রিট বাস্তবায়নের বিশেষ বৈশিষ্ট্যগুলি কী হতে পারে।

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

এবং এক থেকে অন্য রূপান্তর?

আপনি সাধারণত এবং পিছনে রূপান্তর করা হবে না। ক String হয়CharSequence। আপনার পদ্ধতি ঘোষণা করে যে এটি একটি নেয় CharSequence, কলিং প্রোগ্রামার একটি পাস হতে পারে Stringবস্তু, বা যেমন অন্য কিছু যেমন পাস হতে পারে StringBufferবা StringBuilder। আপনার পদ্ধতির কোডটি যে কোনও CharSequenceপদ্ধতিতে কল করে যা যা হয়েছে তা কেবল ব্যবহার করবে ।

আপনি রূপান্তর করতে নিকটতমতমটি হ'ল যদি আপনার কোডটি একটি গ্রহণ করে CharSequenceএবং আপনি যদি জানেন যে আপনার প্রয়োজন String। সম্ভবত আপনার ইন্টারফেসে Stringরচনার পরিবর্তে ক্লাসে লিখিত পুরানো কোড দিয়ে CharSequenceইন্টারফেস করছে। অথবা সম্ভবত আপনার কোডটি বার বার লুপ করা বা অন্যথায় বিশ্লেষণের মতো পাঠ্যের সাথে নিবিড়ভাবে কাজ করবে। সেক্ষেত্রে আপনি যে কোনও সম্ভাব্য পারফরম্যান্স হিট একবারে নিতে চান, তাই আপনি toStringসামনে কল করুন । তারপরে আপনি পুরোপুরি মেমরিতে একক টুকরো টেক্সট হতে যা জানেন তা ব্যবহার করে আপনার কাজটি এগিয়ে যান।

বাঁকানো ইতিহাস

গৃহীত উত্তরের বিষয়ে করা মন্তব্যগুলি নোট করুন । CharSequenceইন্টারফেস বিদ্যমান শ্রেণী কাঠামো সম্মুখের retrofitted করা হয়েছে, তাই সেখানে কিছু গুরুত্বপূর্ণ সুক্ষ্ণ বিষয়গুলো (হয় equals()& hashCode())। জাভা বিভিন্ন সংস্করণ (1, 2, 4 এবং 5) লক্ষ করুন ক্লাস / ইন্টারফেসে ট্যাগ করা - বেশ কয়েক বছর ধরে মন্থন করা। আদর্শভাবে CharSequenceশুরু থেকেই জায়গাটিতে থাকত তবে জীবন এমনই।

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

বিভিন্ন স্ট্রিং সম্পর্কিত ক্লাস এবং ইন্টারফেসের চিত্র


2
আপনি কি এই চিত্রটি নিজেই তৈরি করেছেন? বিভিন্ন ডেটা স্ট্রাকচারের জন্য এই চিত্রগুলির একটি ক্যাটালগ আছে কিনা তা ভাবছেন।
ব্যবহারকারী 171943

4
@ ব্যবহারকারী 171943 আমার দ্বারা রচিত, ওমনিগ্রুপ থেকে ওমনিগ্রাফেল অ্যাপ্লিকেশন ব্যবহার করে হস্তনির্মিত।
তুলসী বাউরক

37

আমি বিশ্বাস করি চারসেকেন্স ব্যবহার করা ভাল। কারণটি হ'ল স্ট্রিং চারসেকেন্সকে প্রয়োগ করে, অতএব আপনি একটি স্ট্রিংকে একটি চার্জ সিকোয়েন্সে পাস করতে পারেন, আপনি চার্জ সিক্যেন্সকে কোনও স্ট্রিংয়ে পাস করতে পারবেন না, যেমন চারসেকেন্স স্ট্রিং প্রয়োগ করে না। EditText.getText()এছাড়াও, অ্যান্ড্রয়েডে পদ্ধতিটি একটি সম্পাদনযোগ্য ফিরিয়ে দেয়, যা চারসেকেন্সকেও প্রয়োগ করে এবং সহজেই স্ট্রিংয়ের মধ্যে না হয়ে একটিতে চলে যেতে পারে। চারসেকেন্স সব পরিচালনা করে!


7
আপনি করতে পারেনcharSequence.toString()
জোর্হে ফুয়েটেস গঞ্জালেজ

1
@ জর্জ: সিকোয়েন্সটি পরিবর্তনযোগ্য (বা যে কোনও কারণে অপ্রয়োজনীয় স্ট্রিংয়ের জন্য অক্ষরগুলির একটি অনুলিপি প্রয়োজন) অপেক্ষাকৃত অক্ষম ব্যতীত।
লরেন্স ডল

খুব সুন্দর ব্যাখ্যা ..!
মাজুর্গেরথন

23

সাধারণভাবে একটি ইন্টারফেস ব্যবহার আপনাকে ন্যূনতম সমান্তরাল ক্ষতির সাথে বাস্তবায়নে পরিবর্তিত করতে দেয়। যদিও জাভা.লং.আর স্ট্রিং অত্যন্ত জনপ্রিয় তবে এটি সম্ভবত কিছু নির্দিষ্ট ক্ষেত্রে অন্য প্রয়োগ বাস্তবায়ন করতে চাইবে want স্ট্রিংসের চেয়ে চারসেকেন্সের চারপাশে এপিআই তৈরির মাধ্যমে কোডটি এটিকে করার সুযোগ দেয়।


8

এটি প্রায় অবশ্যই পারফরম্যান্স কারণ। উদাহরণস্বরূপ, এমন একটি পার্সার কল্পনা করুন যা স্ট্রিংগুলি সহ 500k বাইটবফার দিয়ে যায় goes

স্ট্রিং সামগ্রীটি ফেরত দেওয়ার জন্য 3 টি পদ্ধতি রয়েছে:

  1. বিশ্লেষণের সময়ে একটি স্ট্রিং [] তৈরি করুন, একবারে একটি করে অক্ষর। এটি একটি লক্ষণীয় পরিমাণ সময় নেবে। ক্যাশেড রেফারেন্সগুলি তুলনা করার জন্য আমরা। গুণাবলীর পরিবর্তে == ব্যবহার করতে পারি।

  2. পার্স সময় অফসেট সহ একটি ইনট [] তৈরি করুন, তারপরে যখন একটি () ঘটে তখন গতিশীলভাবে স্ট্রিং তৈরি করুন। প্রতিটি স্ট্রিং একটি নতুন অবজেক্ট হবে, সুতরাং কোনও ক্যাশিং মান এবং == ব্যবহার করে কোনও ক্যাশে দেওয়া হবে না

  3. পার্স সময় একটি CharSequence [] তৈরি করুন। যেহেতু কোনও নতুন ডেটা সংরক্ষণ করা হয়নি (বাইট বাফারে অফসেট ব্যতীত), পার্সিংটি # 1 এর তুলনায় অনেক কম। সময় নেওয়ার সময়, আমাদের স্ট্রিং তৈরি করার দরকার নেই, সুতরাং পারফরম্যান্সটি # 1 এর সমান (# 2 এর চেয়ে অনেক ভাল), কারণ আমরা কেবল একটি বিদ্যমান অবজেক্টের রেফারেন্স ফিরিয়ে দিচ্ছি।

চারসেকেন্স ব্যবহার করে প্রসেসিং লাভের পাশাপাশি আপনি ডুপ্লিকেট না করে মেমরির পদক্ষেপও হ্রাস করেন। উদাহরণস্বরূপ, যদি আপনার কাছে 3 টি অনুচ্ছেদে টেক্সটযুক্ত বাফার থাকে এবং আপনি 3 বা একক অনুচ্ছেদে ফিরে আসতে চান তবে এটি উপস্থাপনের জন্য আপনার 4 স্ট্রিং দরকার need চার সিক্যুইয়েন্স ব্যবহার করে আপনার কেবলমাত্র ডেটা সহ 1 টি বাফার এবং শুরু এবং দৈর্ঘ্যের উপর নজর রাখে চারসিকিউেন্স বাস্তবায়নের 4 টি উদাহরণ প্রয়োজন।


6
রেফারেন্স plz। মনে হচ্ছে এলোমেলোভাবে অনুমান করা হচ্ছে যা চলছে। এছাড়াও আমি আপনার যুক্তি বৈধ মনে করি না। কেউ সহজেই 500k বাইটবফারটিকে স্ট্রিং হিসাবে প্রথম স্থানে সঞ্চয় করতে পারে এবং কেবল সাবস্ট্রিংগুলি ফিরিয়ে দেয় যা দ্রুত পাগল এবং আরও অনেক সাধারণ।
kritzikratzi

6
@ প্রকৃতিজিক্রতজী - জেডিকে 7 হিসাবে, স্ট্রিংয়ের উপরের স্ট্রিংটি আর অন্তর্নিহিত অ্যারে ভাগ করে না এবং "পাগল দ্রুত" নয়। এটি স্ট্রিংয়ের দৈর্ঘ্যে ও (এন) সময় নেয় এবং প্রতিবার আপনি যখন কল করবেন অন্তর্নিহিত অক্ষরগুলির একটি অনুলিপি তৈরি করে (যাতে প্রচুর আবর্জনা হয়)।
BeeOnRope

@ প্রকৃতিজিক্রতজি আমি বিশ্বাস করি যে পরিবর্তনের কারণটি হ'ল, অনুলিপিটি তৈরি না করা থাকলে মূল স্ট্রিংটি সমস্ত সাবস্ট্রিংয়ের আজীবন ধরে রাখা হত। প্রদত্ত যে সাবস্ট্রিংগুলি সাধারণত মূলের কেবলমাত্র ছোট অংশ এবং এটি কীভাবে ব্যবহৃত হয় তার উপর নির্ভর করে অনির্দিষ্টকালের জন্য স্থায়ী হতে পারে, যদি সাবস্ট্রিংগুলি মূল স্ট্রিংয়ের চেয়ে অনেক বেশি সময় ব্যবহার করা হয় তবে এটি আরও বেশি আবর্জনা তৈরি করতে পারে। মজাদার স্ট্রিং আকারের সাথে সাবস্ট্রিংয়ের অনুপাতের উপর ভিত্তি করে অনুলিপি করা হবে কিনা তা নির্ধারণ করার জন্য একটি আকর্ষণীয় Alt হতে পারে, তবে আপনাকে তার জন্য আপনার নিজের CharSequenceপ্রয়োগটি রোল করতে হবে।
জ্যাব

1
সম্ভবত আমি বিষয়টি মিস করেছি, তবে এই উত্তরটি বোকামি। এ CharSequenceএকটি ইন্টারফেস - সংজ্ঞা অনুসারে, আপনি যে প্রয়োগকরণের বিশদটি আলোচনা করেছেন তার কোনওটিই নেই কারণ এটির নিজস্ব কোনও বাস্তবায়ন নেই । এ ইন্টারফেস প্রয়োগ করে এমন Stringকয়েকটি কংক্রিট শ্রেণীর মধ্যে একটি CharSequence। সুতরাং একটি String হল একটি CharSequence। আপনি Stringবনাম StringBufferবনামের পারফরম্যান্সের বিশদ তুলনা করতে পারেন StringBuilder, তবে তা নয় CharSequence। "আপনি চারসেকেন্স ব্যবহার করে প্রসেসিং লাভ" লিখেছেন অর্থহীন।
বাসিল বার্ক

7

ব্যবহারিক অ্যান্ড্রয়েড কোডে যে বিষয়টি উত্থাপিত হয় তা হ'ল তাদের সাথে চারসেকেন্স.একুয়ালসের সাথে তুলনা করা বৈধ তবে এটি প্রয়োজন মতো কাজ করে না।

EditText t = (EditText )getView(R.id.myEditText); // Contains "OK"
Boolean isFalse = t.getText().equals("OK"); // will always return false.

তুলনা করা উচিত

("OK").contentEquals(t.GetText()); 

5

CharSequence

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

  • String (স্টাইলিং স্প্যানস ছাড়াই পরিবর্তনযোগ্য পাঠ্য)
  • StringBuilder (কোনও স্টাইলিং স্প্যান ছাড়া পরিবর্তনীয় পাঠ্য)
  • SpannableString (স্টাইলিং স্প্যান সহ অবিচ্ছেদ্য পাঠ্য)
  • SpannableStringBuilder (স্টাইলিং স্প্যানগুলির সাথে পরিবর্তনীয় পাঠ্য)

(আপনি এগুলির মধ্যে পার্থক্য সম্পর্কে আরও পড়তে পারেন এখানে ))

আপনার যদি কোনও CharSequenceঅবজেক্ট থাকে, তবে এটি বাস্তবে বাস্তবায়িত ক্লাসগুলির মধ্যে একটির একটি অবজেক্ট CharSequence। উদাহরণ স্বরূপ:

CharSequence myString = "hello";
CharSequence mySpannableStringBuilder = new SpannableStringBuilder();

সাধারণ ছাতা টাইপের মতো সুবিধা CharSequenceহ'ল আপনি একক পদ্ধতিতে একাধিক ধরণের পরিচালনা করতে পারেন। উদাহরণস্বরূপ, আমার কাছে যদি এমন পদ্ধতি থাকে যা CharSequenceপ্যারামিটার হিসাবে গ্রহণ করে তবে আমি একটি Stringবা SpannableStringBuilderএকটিতে পাস করতে পারি এবং এটি কোনওটি পরিচালনা করতে পারে।

public int getLength(CharSequence text) {
    return text.length();
}

দড়ি

আপনি বলতে পারেন যে একটি Stringমাত্র এক ধরণের CharSequence। তবে CharSequenceএটি অসদৃশ , এটি একটি প্রকৃত শ্রেণি, সুতরাং আপনি এটি থেকে অবজেক্ট তৈরি করতে পারেন। সুতরাং আপনি এটি করতে পারে:

String myString = new String();

তবে আপনি এটি করতে পারবেন না:

CharSequence myCharSequence = new CharSequence(); // error: 'CharSequence is abstract; cannot be instantiated

যেহেতু CharSequenceকেবল নিয়ম মেনে চলার একটি তালিকা Stringতাই আপনি এটি করতে পারেন:

CharSequence myString = new String();

এর অর্থ হ'ল যে কোনও সময় কোনও পদ্ধতি জিজ্ঞাসা করে CharSequence, এটি দেওয়া ভাল String

String myString = "hello";
getLength(myString); // OK

// ...

public int getLength(CharSequence text) {
    return text.length();
}

তবে, বিপরীতটি সত্য নয়। যদি পদ্ধতিটি একটি Stringপ্যারামিটার নেয় তবে আপনি এটিকে এমন কিছু দিতে পারবেন না যা কেবল সাধারণত একটি হিসাবে পরিচিত CharSequence, কারণ এটি সম্ভবত একটি SpannableStringবা অন্য কোনও ধরণের হতে পারে CharSequence

CharSequence myString = "hello";
getLength(myString); // error

// ...

public int getLength(String text) {
    return text.length();
}

0

CharSequenceএটি একটি ইন্টারফেস এবং Stringএটি প্রয়োগ করে। আপনি একটি তাত্ক্ষণিক করতে পারেন Stringতবে আপনি এটি করতে পারেননি CharSequenceকারণ এটি একটি ইন্টারফেস। CharSequenceঅফিসিয়াল জাভা ওয়েবসাইটে আপনি অন্যান্য প্রয়োগগুলি পেতে পারেন ।


-4

চারসেকেন্স হল চর মানগুলির একটি পাঠযোগ্য পাঠ্যক্রম যা স্ট্রিং প্রয়োগ করে ments এটির 4 টি পদ্ধতি রয়েছে

  1. চরআউট (ইনড ইনডেক্স)
  2. দৈর্ঘ্য ()
  3. সাবসেক্সেন্স (ইনট স্টার্ট, ইনট এন্ড)
  4. স্ট্রিং()

ডকুমেন্টেশন উল্লেখ করুন CharSequence ডকুমেন্টেশন


6
CharSequenceবাস্তবায়ন করে না String। কনভার্সটি সত্য, যদিও।
Seh

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