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


400

আমি জাভা একটি সহজ প্রশ্ন আছে: আমি একটি কিভাবে রূপান্তর করতে পারেন Stringযে প্রাপ্ত হয়েছিল দ্বারা Long.toString()করা long?


1
জাভাতে স্ট্রিংকে দীর্ঘ রূপান্তর করার জন্য উদাহরণ সহ 5 টি উপায়
সোমনাথ মুলুক

1
অভ্যন্তরীণভাবে সমস্ত সংস্করণ কল পদ্ধতি Long.parseLong (স্ট্রিং) । সরাসরি এটি ব্যবহার করুন। কয়েকটি সিপিইউ চক্র সংরক্ষণ করুন।
লোকেশ

দয়া করে এটিতে উল্লেখ করুন: বিকাশকারী.অ্যান্ড্রয়েড.
মিহির ত্রিবেদী

উত্তর:


664

ব্যবহার Long.parseLong()

 Long.parseLong("0", 10)        // returns 0L
 Long.parseLong("473", 10)      // returns 473L
 Long.parseLong("-0", 10)       // returns 0L
 Long.parseLong("-FF", 16)      // returns -255L
 Long.parseLong("1100110", 2)   // returns 102L
 Long.parseLong("99", 8)        // throws a NumberFormatException
 Long.parseLong("Hazelnut", 10) // throws a NumberFormatException
 Long.parseLong("Hazelnut", 36) // returns 1356099454469L
 Long.parseLong("999")          // returns 999L

2
"মধ্যাহ্নভোজন / রাতের খাবার" সম্পর্কে কী?
নরেন্দ্র সোরথিয়া

সুন্দর কোড এর কাজ
sirmagid

140

একটি রূপান্তর করতে স্ট্রিং একটি থেকে লং (বস্তু), ব্যবহারLong.valueOf(String s).longValue();

লিঙ্ক দেখুন


1
ওপি যা বলছে তা নয়।
খ্রিস্টান মান

7
@Belgi। না, এটি ফিরে আসেjava.lang.Long
আলেকজান্ডার পোগ্রেবন্যাক

@ বেলগি - লং.ভ্যালুওফ একটি স্ট্রিং নয়, একটি দীর্ঘ ফিরিয়ে দেয়।
ডন রবি

4
@ মাইকড্যানিয়েলস, কারণ এটি এটি করার একটি খুব পরোক্ষ উপায়। ডকস.ওরকল / জাভ্যাস / / / ডকস / এপি / জাভা / লং / দেখুন দেখুন এটি আদিম দীর্ঘ নয় এমন একটি দীর্ঘ বস্তুর প্রত্যাবর্তন করবে ।
পেসারিয়ার

Long.valueOf (স্ট্রিং গুলি) একটি লম্বা (বস্তু) এবং Long.valueOf (স্ট্রিং গুলি) দেয় ong লংভ্যালু () দীর্ঘ (আদিম) দেয়।
চ্যাম্প

27
public class StringToLong {

   public static void main (String[] args) {

      // String s = "fred";    // do this if you want an exception

      String s = "100";

      try {
         long l = Long.parseLong(s);
         System.out.println("long l = " + l);
      } catch (NumberFormatException nfe) {
         System.out.println("NumberFormatException: " + nfe.getMessage());
      }

   }
}


5

সেরা পন্থা Long.valueOf(str)যেমন নির্ভর করে উপর Long.valueOf(long)যার ফলে এটি আরও দক্ষ করে ক্যাশে দৃষ্টান্ত প্রয়োজন যেহেতু এটি পুনরায় ব্যবহার করতে হবে উপার্জন একটি অভ্যন্তরীণ ক্যাশে ব্যবহার Longথেকে যাচ্ছে -128করার 127অন্তর্ভুক্ত।

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

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

long val = Long.valueOf(str);

দয়া করে মনে রাখবেন যে NumberFormatExceptionসরবরাহ করা Stringএকটি স্বাক্ষরের সাথে মেলে না তবে পূর্ববর্তী কোডটি এখনও একটি ছুড়ে দিতে পারে long

সাধারণভাবে বলতে গেলে, এটি ব্যবহার করার জন্য একটি ভাল অনুশীলন staticকারখানা পদ্ধতি valueOf(str)মত একটি রাপার ক্লাস এর Integer, Boolean, Long, ... যেহেতু তাদের অধিকাংশই দৃষ্টান্ত পুনরায় ব্যবহার যখনই সম্ভব তৈরীর তাদের সম্ভাব্য আরও সংশ্লিষ্ট চেয়ে মেমরির পদাঙ্ক মেয়াদে কার্যকরী parseপদ্ধতি বা কনস্ট্রাকটর ।


জোশুয়া ব্লচের লেখা কার্যকর জাভা থেকে কিছু অংশ :Item 1

উভয়ই অপরিবর্তনীয় শ্রেণিতে নির্মাতাদের অগ্রাধিকার হিসাবে স্থিতিশীল কারখানার পদ্ধতিগুলি (আইটেম 1) ব্যবহার করে আপনি প্রায়শই অপ্রয়োজনীয় বস্তু তৈরি এড়াতে পারবেন । উদাহরণস্বরূপ, স্থির কারখানার পদ্ধতিটি Boolean.valueOf(String)প্রায় সবসময় নির্মাণকারীর চেয়ে পছন্দনীয় Boolean(String)। কনস্ট্রাক্টর প্রত্যেকবার বলা হওয়ার সাথে সাথে একটি নতুন অবজেক্ট তৈরি করে, স্থির কারখানার পদ্ধতিটি কখনই এটি করার প্রয়োজন হয় না এবং অনুশীলনে হয় না।


1
দীর্ঘ -> লং, লং.ভ্যালুঅফ (আদিমলং) এর ক্ষেত্রে সংকলকটির দ্বারা স্বয়ং-আনবক্সিংকে "ডিজাইনার্ড" করা উচিত। সুতরাং Long number = Long.valueOf("123"), Long number = Long.parseLong("123")এবং Long number = Long.valueOf(Long.parseString("123")সমস্ত শেষ পর্যন্ত একই জিনিস করছেন। আপনি যা সম্পর্কে সাবধানতা অবলম্বন করতে চান তা বক্সযুক্ত আদিম শ্রেণীর নির্মাতাদের কল করা নয় - এটি অপচয় হতে পারে। সুতরাং লিখবেন নাLong number = new Long(parseLong("123"))
আয়ান রবার্টসন

4

স্ট্রিংকে পূর্ণসংখ্যায় রূপান্তর করার কিছু উপায় রয়েছে :

1)

long l = Long.parseLong("200"); 

2)

String numberAsString = "1234";
long number = Long.valueOf(numberAsString).longValue();

3)

 String numberAsString = "1234";
  Long longObject = new Long(numberAsString);
  long number = longObject.longValue();

আমরা সংক্ষিপ্ত করতে পারেন:

String numberAsString = "1234";
long number = new Long(numberAsString).longValue();

বা শুধু

long number = new Long("1234").longValue();

4) ডিসেমাল ফর্ম্যাট ব্যবহার করে:

    String numberAsString = "1234";
      DecimalFormat decimalFormat = new DecimalFormat("#");
     try {
        long number = decimalFormat.parse(numberAsString).longValue();
        System.out.println("The number is: " + number);
    } catch (ParseException e) {
     System.out.println(numberAsString + " is not a valid number.");
   }

1

এটি বেশ সহজ, ব্যবহার Long.valueOf(String s);

উদাহরণ স্বরূপ:

String s;
long l;

Scanner sc=new Scanner(System.in);
s=sc.next();
l=Long.valueOf(s);
System.out.print(l);

তুমি করেছ!!!


0

যারা কোটলিনে স্যুইচ করেছেন তাদের জন্য কেবল এটি ব্যবহার করুন হুডের নীচে
string.toLong()
কল করবেLong.parseLong(string)


-1

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

    Map map = new HashMap();

    map.put("name", "John");
    map.put("time", "9648512236521");
    map.put("age", "25");

    long time = Long.valueOf((String)map.get("time")).longValue() ;
    int age = Integer.valueOf((String)  map.get("aget")).intValue();
    System.out.println(time);
    System.out.println(age);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.