এক্সেল সেলগুলিতে স্ট্রিং (সংখ্যা নয়) হিসাবে আমি কীভাবে স্ট্রিং পড়তে পারি?


146
  1. এ জাতীয় সামগ্রীর সাথে আমার এক্সেল ফাইল রয়েছে:

    • এ 1: সোমারস্ট্রিং

    • এ 2: 2

    সমস্ত ক্ষেত্র স্ট্রিং বিন্যাসে সেট করা আছে।

  2. আমি যখন জাওতে পিওআই ব্যবহার করে ফাইলটি পড়ি তখন এটি জানায় যে এ 2 সংখ্যার ঘর বিন্যাসে রয়েছে।

  3. সমস্যাটি হ'ল A2 এর মান 2 বা 2.0 হতে পারে (এবং আমি তাদের আলাদা করতে সক্ষম হতে চাই) তাই আমি কেবল ব্যবহার করতে পারি না .toString()

স্ট্রিং হিসাবে মানটি পড়তে আমি কী করতে পারি?

উত্তর:


319

আমারও একই সমস্যা ছিল cell.setCellType(Cell.CELL_TYPE_STRING);স্ট্রিংয়ের মানটি পড়ার আগে আমি তা করেছি , যা ব্যবহারকারী সেলটি ফর্ম্যাট করে না কেন সমস্যা সমাধান করে।


আমি poi-3.8-beta4 ব্যবহার করি, এবং এটি প্রত্যাশার মতো কাজ করে! টিএস কেন এটি উত্তর হিসাবে গ্রহণ করে না?
swdev

সচেতন থাকুন যে স্ট্রিং রূপান্তর থেকে পিওআইয়ের সংখ্যাসূচকটি সিস্টেমের লোকালে বিবেচনা করে না, এটি সর্বদা দশককে পৃথক হিসাবে পৃথক হিসাবে ব্যবহার করে। উদাহরণস্বরূপ, যদি আপনার সিস্টেমটি "," ব্যবহার করে এবং এক্সেল নম্বরে "1,9" দেখতে লাগে, তার পরিবর্তে পিওআই "1.9" ফিরিয়ে দেবে।
আলেক্সি বেরেজকিন

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

6
এটি করার বিরুদ্ধে গগ্রাভায়ারের সতর্কতা ঠিক! দস্তাবেজগুলি থেকে: "আপনি যা করতে চান তা যদি আপনার সাংখ্যিক কক্ষের জন্য স্ট্রিং মান পান তবে থামুন! এটি করার উপায় এটি নয় Instead পরিবর্তে একটি সংখ্যাসূচক বা বুলিয়ান বা তারিখের ঘরে স্ট্রিংয়ের মান আনার জন্য ব্যবহার করুন পরিবর্তে ডেটা ফর্ম্যাটর। poi.apache.org/apidocs/org/apache/poi/ss/usermodel/… আমি এই কৌশলটি নিজেরাই ব্যবহার করেছিলাম যতক্ষণ না আমি দুর্ঘটনাক্রমে ডেটা পরিবর্তন করার জন্য আমার পরিবর্তন করার ইচ্ছা ছিল না। (স্ট্রিং এ টাইপ সেট করুন, মান পড়ুন, টাইপকে আবার সংখ্যায় সেট করুন, আবার পড়ুন এবং আলাদা আলাদা নিউমার্কিক মান পাবেন!)
ক্রিস ফিনলে

6
ডেটাফর্মেটর ব্যবহার করুন। জাভাদোক উপরের পদ্ধতিটি ব্যবহার থেকে আমাদের সতর্ক করে।
বালু এসকেটি

96

আমি মনে করি না আপনি প্রশ্ন জিজ্ঞাসা করার সময় আমাদের এই ক্লাসটি ফিরে ছিল, তবে আজ একটি সহজ উত্তর আছে।

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

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

এছাড়াও, নোট করুন যে প্রচুর লোকেরা কাজটি করার পরামর্শ দেয় cell.setCellType(Cell.CELL_TYPE_STRING)তবে অ্যাপাচি পিওআই জাভাডোকস পরিষ্কারভাবে জানিয়ে দেয় যে আপনার এটি করা উচিত নয় ! এরকম setCellTypeকল বিন্যাস হারাবে, যেমন javadocs ব্যাখ্যা অবশিষ্ট ফর্ম্যাটিং সহ একটি স্ট্রিং রূপান্তর করার একমাত্র উপায় ব্যবহার করা DataFormatter বর্গ


ধন্যবাদ @ গ্রাগ্রায়ার কেবল আপনার উত্তর আমার জন্য কাজ করছে <code> সেল.সেটসেলটাইপ (সেল.সেলেল_ওয়াই.পি.এসটিআরং); <কোড> ২.২ মানটিকে ২.০০০০০০০০০০০০০০০০২ হিসাবে রূপান্তর করতে, তবে আমি ২.২ চাই want এটি স্ট্রিং ফর্ম্যাটে কিছু ফেরত ধন্যবাদ
অঙ্কুশ যাদব

ডেটাফর্ম্টারটি সূত্রের কক্ষগুলির জন্য কাজ করে বলে মনে হচ্ছে না, এটি মানটির পরিবর্তে সূত্রটির একটি স্ট্রিং প্রতিনিধিত্ব দেয়
gaurav5430

1
কেবল একটি ছোট্ট নোট: দয়া করে এই উত্তরগুলির জন্য সংক্ষিপ্ত কোড স্নিপেটগুলি সরবরাহ করুন, সেগুলি যদি সরবরাহিত লিঙ্কগুলিতে বর্ণিত হয়
BEERUS

@ গৌরভ ৫৪৩০ হ্যাঁ, এটি সূত্রগুলি দিয়ে ভাল যায় না ... ডক অনুসারে,When passed a null or blank cell, this method will return an empty String (""). Formulas in formula type cells will not be evaluated.
সারাটভাসওয়ানথ

53

নীচের কোডটি কোনও ধরণের ঘরে আমার জন্য কাজ করেছিল।

InputStream inp =getClass().getResourceAsStream("filename.xls"));
Workbook wb = WorkbookFactory.create(inp);
DataFormatter objDefaultFormat = new DataFormatter();
FormulaEvaluator objFormulaEvaluator = new HSSFFormulaEvaluator((HSSFWorkbook) wb);

Sheet sheet= wb.getSheetAt(0);
Iterator<Row> objIterator = sheet.rowIterator();

while(objIterator.hasNext()){

    Row row = objIterator.next();
    Cell cellValue = row.getCell(0);
    objFormulaEvaluator.evaluate(cellValue); // This will evaluate the cell, And any type of cell will return string value
    String cellValueStr = objDefaultFormat.formatCellValue(cellValue,objFormulaEvaluator);

}

4
ঠিক কাজ করেছেন! আমার পরামর্শটি হ'ল ফর্মুলায়েভ্যুয়েটর পুনরুদ্ধার করার পদ্ধতিটি পরিবর্তন করা। ওয়ার্কবুক শ্রেণি getCreationHelper().createFormulaEvaluator()পদ্ধতিটি যদিও একটি সূত্র মূল্যায়নকারী সরবরাহ করে । এইভাবে আপনার কোডটি এইচএসএসএফফর্মুলাএভালুয়েটার শ্রেণীর সাথে মিলিত হবে না।
ভিটোয়ার

এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। ধন্যবাদ @ বিনায়াক
ফাস 1 সি

FormulaEvaluatorএই সমাধান থেকে কেবল সরানো যেতে পারে? এটি একটি উদ্দেশ্য পরিবেশন করে?
পি.ব্রেইন.ম্যাকি

1
Fজফর্মুলাভ্যালুয়েটর.এভালুয়েটে কলটি প্রয়োজনীয় নয়। এর রিটার্ন মান এখানে ব্যবহার করা হচ্ছে না।
রাদু সিমিনেস্কু

32

সেলটির ধরণটি অনাকাঙ্ক্ষিত করার সময় আমি নিম্নলিখিত পদ্ধতির সুপারিশ করব:

if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
    String str = NumberToTextConverter.toText(cell.getNumericCellValue())
}

নাম্বার টেক্সট কনভার্টারের নির্ভুলতা ক্ষতি ছাড়াই এক্সেলের নিয়ম ব্যবহার করে ডাবল মানকে সঠিকভাবে রূপান্তর করতে পারে।


সত্যিই উত্তেজনাপূর্ণ পরামর্শ! ধন্যবাদ! এটি সেল টাইপ স্ট্রিংয়ে সেট করার বিপরীতে রূপান্তরিত মানগুলি পাওয়ার অনুমতি দেয়।
গ্লেব এগুনভ

আমি 25/06/2020 এর সেল মানের আউটপুট হিসাবে 44007 পাচ্ছি। আমি কি ভুল করছি?
বিনয়

17

পোয়ের জাভাডক্সে ইতিমধ্যে উল্লিখিত হিসাবে ( https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Celll.html#setCellType%28int%29 ) ব্যবহার করবেন না:

cell.setCellType(Cell.CELL_TYPE_STRING);

তবে ব্যবহার করুন:

DataFormatter df = new DataFormatter();
String value = df.formatCellValue(cell);

Http://massapi.com/class/da/DataFormatter.html এ আরও উদাহরণ


10

হ্যাঁ, এটি পুরোপুরি কাজ করে

সুপারিশ:

        DataFormatter dataFormatter = new DataFormatter();
        String value = dataFormatter.formatCellValue(cell);

পুরানো:

cell.setCellType(Cell.CELL_TYPE_STRING);

cellসূত্র থাকা থেকে মান পুনরুদ্ধারে আপনার যদি সমস্যা হয় , তবুও এটি কাজ করে।


5
তবে আপনাকে দ্বিগুণ মানের জন্য এটি ব্যবহারে সতর্কতা অবলম্বন করতে হবে। আমার জন্য এটি 7.9 মান 7.8999956589965 এ পরিণত হয়েছে ...
ক্রিস

2
এ্যাপাচি থাকা POI javadocs খুব পরিষ্কার যে আপনার এটা যে মত না কাজ করা উচিত হয় : , কি আপনি কি করতে চান আপনার সাংখ্যিক কক্ষের জন্য স্ট্রিং মান পেতে হলে স্টপ !. এটি করার উপায় এটি নয়। পরিবর্তে, একটি সংখ্যাসূচক বা বুলিয়ান বা তারিখ কক্ষের স্ট্রিং মান আনার জন্য, পরিবর্তে ডেটাফর্ম্যাটর ব্যবহার করুন।
গ্যাগ্রাভায়ার

4

চেষ্টা করুন:

new java.text.DecimalFormat("0").format( cell.getNumericCellValue() )

নম্বরটি সঠিকভাবে ফর্ম্যাট করা উচিত।


আমি যেমন বুঝতে পেরেছি, প্রশ্নকর্তা 2এবং এর মধ্যে পার্থক্য করতে সক্ষম হতে চান 2.0। আপনার সমাধানটি এটি করবে না। (তবে তবুও, স্ট্যাক ওভারফ্লোতে আপনাকে স্বাগতম!)
পেলো ইবারম্যান

1

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

  • ঘরের ভিতরে ডাবল ক্লিক করুন যাতে সম্পাদনা কার্সারটি সেলের ভিতরে উপস্থিত থাকে, তারপরে এন্টার টিপুন (যা একবারে কেবলমাত্র একটি ঘর করা যায়)।
  • এক্সেল 2007 এর পাঠ্য রূপান্তর ফাংশনটি ব্যবহার করুন (যা একসাথে একাধিক কক্ষে করা যেতে পারে)।
  • অন্য স্থানে আপত্তিকর মানগুলি কেটে ফেলুন, স্প্রেডশিট ঘরগুলি পাঠ্য হিসাবে পুনরায় ফর্ম্যাট করুন, তারপরে পূর্বে কাটা আউট মানগুলিকে যথাযথ ক্ষেত্রে পুনরায় ফর্ম্যাট করুন Values

একটি চূড়ান্ত জিনিস যা আপনি করতে পারেন তা হ'ল যদি আপনি কোনও এক্সেল 2007 স্প্রেডশিট থেকে ডেটা পাওয়ার জন্য POI ব্যবহার করে থাকেন তবে আপনি সেল বর্গ 'getRawValue ()' পদ্ধতিটি করতে পারেন। এটি ফর্ম্যাটটি কী তা বিবেচনা করে না। এটি কেবল কাঁচা ডেটা সহ একটি স্ট্রিং ফিরিয়ে দেবে।


0

যখন আমরা অ্যাপাচি পিওআই লাইব্রেরি ব্যবহার করে এমএস এক্সেলের সংখ্যাগত সেল মানটি পড়ি তখন এটি এটিকে সংখ্যা হিসাবে পাঠ করে। তবে আমরা চাই যে এটি স্ট্রিং (যেমন ফোন নম্বর, ইত্যাদি) হিসাবে পড়া উচিত) এটি আমি এটি করেছিলাম:

  1. প্রথম কক্ষ = কনস্যাটেন্ট ("!", ডি 2) সহ একটি নতুন কলাম sertোকান। আমি ধরে নিই যে ডি 2 আপনার ফোন নম্বর কলামের সেল আইডি। নতুন কক্ষটি শেষ পর্যন্ত টেনে আনুন।

  2. এখন আপনি যদি POI ব্যবহার করে সেলটি পড়েন তবে এটি গণনার মানের পরিবর্তে সূত্রটি পড়বে। এখন নিম্নলিখিতগুলি করুন:

  3. অন্য কলাম যুক্ত করুন

  4. পদক্ষেপ 1 এ তৈরি করা সম্পূর্ণ কলাম নির্বাচন করুন এবং সম্পাদনা-> কপি নির্বাচন করুন

  5. পদক্ষেপ 3 এ তৈরি কলামের শীর্ষ কক্ষে যান এবং সম্পাদনা-> বিশেষ আটকান নির্বাচন করুন

  6. খোলা উইন্ডোতে, "মানগুলি" রেডিও বোতামটি নির্বাচন করুন

  7. "ঠিক আছে" নির্বাচন করুন

  8. এখন পিওআই এপিআই ব্যবহার করে পড়ুন ... জাভা পড়ার পরে ... প্রথম অক্ষরটি সরিয়ে ফেলুন ""! "


যদি কেউ নিজেরাই এক্সেল ফাইল তৈরি না করে তবে আপনার সমাধানটি ব্যবহারযোগ্য হবে না বলে মনে হচ্ছে? (এছাড়াও, আপনি কি আপনার উত্তরের একটি নির্যাস রাখতে পারেন? এটি এত দীর্ঘ নয়))
পাওলো ইবারম্যান

হ্যাঁ, যখন কেউ এক্সেল ফাইল নিজে তৈরি করে না তখন এটি ব্যবহার করা যাবে না।
আসিফ শাহজাদ

0

হাজার হাজার সংখ্যার ডেটা সেটটিতেও আমার একই রকম সমস্যা রয়েছে এবং আমি মনে করি যে আমি সমাধানের একটি সহজ উপায় খুঁজে পেয়েছি। একটি সংখ্যার আগে আমাকে অ্যাস্টোস্ট্রোফ inোকানো দরকার ছিল যাতে একটি পৃথক ডিবি আমদানি সর্বদা সংখ্যাটিকে পাঠ্য হিসাবে দেখায়। এর আগে 8 নম্বরটি 8.0 হিসাবে আমদানি করা হত।

সমাধান:

  • সমস্ত বিন্যাস সাধারণ হিসাবে রাখুন।
  • এখানে আমি ধরে নিচ্ছি যে সংখ্যাগুলি সারি 1 থেকে শুরু করে কলাম A এ সঞ্চিত আছে।
  • 'কলাম বি'তে রেখে যতগুলি সারি প্রয়োজন হিসাবে অনুলিপি করুন। কার্যপত্রকটিতে কিছুই উপস্থিত হয় না তবে ঘরে ক্লিক করে আপনি সূত্র বারে অ্যাস্টোস্টোফ দেখতে পাবেন।
  • কলামে সি: = বি 1 এবং এ 1।
  • কলাম সি এর সমস্ত ঘর নির্বাচন করুন এবং মান বিকল্পটি ব্যবহার করে কলাম ডি তে একটি আটকানো বিশেষ করুন।

আরে প্রেস্টো সমস্ত নম্বর তবে পাঠ্য হিসাবে সঞ্চিত।


0

getStringCellValue ঘরের প্রকার সংখ্যাসূচক হলে সংখ্যা ফোর্ম্যাটেক্সপশন প্রদান করে। আপনি যদি ঘরটির ধরনটি স্ট্রিংয়ে পরিবর্তন করতে না চান তবে আপনি এটি করতে পারেন।

String rsdata = "";
try {
    rsdata = cell.getStringValue();
} catch (NumberFormatException ex) {
    rsdata = cell.getNumericValue() + "";
}

0

এই উত্তরগুলির মধ্যে অনেকগুলি পুরানো পিওআই ডকুমেন্টেশন এবং ক্লাসগুলি উল্লেখ করে। সর্বশেষতম POI 3.16-তে, প্রকারের টাইপ সহ ঘরটি হ্রাস করা হয়েছে

Cell.CELL_TYPE_STRING

এখানে চিত্র বর্ণনা লিখুন

পরিবর্তে সেলটাইপ এনাম ব্যবহার করা যেতে পারে।

CellType.STRING 

আপনার পোমটি পোই নির্ভরতা এবং পোই-অক্সএমএমএল নির্ভরতা নতুন 3.16 সংস্করণে আপডেট করার বিষয়টি নিশ্চিত করুন অন্যথায় আপনি ব্যতিক্রমগুলি অব্যাহত রাখবেন। এই সংস্করণটির সাথে একটি সুবিধা হ'ল পূর্ববর্তী উত্তরে বর্ণিত সমস্ত অতিরিক্ত পদক্ষেপগুলি মুছে ফেলার সময় আপনি ঘরটি তৈরির সময় নির্দিষ্ট করতে পারেন:

titleRowCell = currentReportRow.createCell(currentReportColumnIndex, CellType.STRING);

0

আমি বরং উইলের উত্তর বা বিনায়ক দোরনালার পথে যেতে চাই, দুর্ভাগ্যক্রমে তারা আমার অভিনয়কে অনেকটা প্রভাবিত করেছিল। আমি অন্তর্ভুক্ত ingালাইয়ের একটি HACKY সমাধানের জন্য গিয়েছিলাম :

for (Row row : sheet){
String strValue = (row.getCell(numericColumn)+""); // hack
...

আমি আপনাকে এটি করার পরামর্শ দিচ্ছি না, কারণ আমার পরিস্থিতি সিস্টেমটি কীভাবে কাজ করেছিল তার প্রকৃতির কারণে এবং এটিতে আমার কাছে একটি নির্ভরযোগ্য ফাইল উত্স ছিল of

পাদটীকা: সংখ্যাসঙ্গন কলাম একটি প্রক্রিয়া যা প্রক্রিয়াজাত ফাইলের শিরোনামটি পড়ার ফলে উত্পন্ন হয়।


0
public class Excellib {
public String getExceldata(String sheetname,int rownum,int cellnum, boolean isString) {
    String retVal=null;
    try {
        FileInputStream fis=new FileInputStream("E:\\Sample-Automation-Workspace\\SampleTestDataDriven\\Registration.xlsx");
        Workbook wb=WorkbookFactory.create(fis);
        Sheet s=wb.getSheet(sheetname);
        Row r=s.getRow(rownum);
        Cell c=r.getCell(cellnum);
        if(c.getCellType() == Cell.CELL_TYPE_STRING)
        retVal=c.getStringCellValue();
        else {
            retVal = String.valueOf(c.getNumericCellValue());
        }

আমি চেষ্টা করেছি এটি আমার জন্য কাজ করেছে


-1

আপনি যেভাবেই এক্সেল ওয়ার্কশিটটি নিয়ন্ত্রণ করেন? ব্যবহারকারীরা কি আপনাকে ইনপুট দেওয়ার জন্য কোনও টেম্পলেট আছে? যদি তা হয় তবে আপনার জন্য ইনপুট সেলগুলি কোড ফর্ম্যাট করতে পারে।




-1

এটি আমার জন্য নিখুঁত কাজ করেছে।

Double legacyRow = row.getCell(col).getNumericCellValue();
String legacyRowStr = legacyRow.toString();
if(legacyRowStr.contains(".0")){
    legacyRowStr = legacyRowStr.substring(0, legacyRowStr.length()-2);
}

-2

আমাদের একই সমস্যা ছিল এবং আমাদের ব্যবহারকারীদের মানটি প্রবেশের আগে ঘরগুলি 'পাঠ্য' হিসাবে ফর্ম্যাট করতে বাধ্য করে। এইভাবে এক্সেল সঠিকভাবে এমনকি সংখ্যাকে পাঠ্য হিসাবে সঞ্চয় করে। পরে যদি ফর্ম্যাটটি পরিবর্তন করা হয় তবে এক্সেল কেবলমাত্র মানটি প্রদর্শিত হয় তার পরিবর্তিত করে তবে মানটি পুনরায় প্রবেশ না করা হলে মান সঞ্চিত করার উপায় পরিবর্তন করে না (উদাহরণস্বরূপ ঘরের মধ্যে যখন রিটার্ন টিপে)।

পাঠ্য হিসাবে এক্সেলটি মানটিকে সঠিকভাবে সঞ্চিত করেছে কিনা তা সামান্য সবুজ ত্রিভুজ দ্বারা ইঙ্গিত করা হয়েছে যা এক্সেলটি সেলটির বাম উপরের কোণায় প্রদর্শিত হয় যদি মনে করে যে ঘরে কোনও সংখ্যা রয়েছে তবে এটি পাঠ্য হিসাবে গঠন করা হয়েছে।


-3

পূর্বে একটি পূর্বে নিক্ষেপ a .toString()। এটি কুৎসিত তবে এটি কাজ করে।


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