জাভাতে কোনও সংখ্যা ডাবল কিনা তা খুঁজে বের করা


95

আমি জাভা নবাগত। আমি এই জাতীয় কিছু সহ একটি সংখ্যা ডাবল কিনা তা বের করার চেষ্টা করছি:

if ( typeof ( items.elementAt(1) )== Double ) {
       sum.add( i, items.elementAt(1));
}

কেউ যদি আমাকে এই কাজটি সঠিকভাবে তৈরি করার জন্য সিনট্যাক্সটিকে পুনরায় সাজানোর জন্য কীভাবে বলতে পারে তা প্রশংসা করবে।


এটি কি কেবলমাত্র আমি, নাকি টাইপফ (বস্তু) আসলে সি # তে বাস্তব নয়? আমি সবসময় ভেবেছিলাম এটি টাইপফুল (টাইপ) ... object o = new object(); Type t = typeof(o);একটি সংকলক ত্রুটি বলে ছুঁড়েছে o is a variable but is used like a type। এই প্রশ্নের নামটি বিভ্রান্ত করছে ...
ড্যান রেসন

সি # তে, সমস্ত বস্তুর একটি Object#GetType()পদ্ধতি রয়েছে, যা a প্রদান করে Type। তারপরে এর সাথে তুলনা করতে ব্যবহার করা যেতে পারে typeof()। এই ক্ষেত্রে, এটি হবে items.elementAt(1).GetType() == typeof(double)
ফ্রন্টিয়ার

উত্তর:


158

এটা চেষ্টা কর:

if (items.elementAt(1) instanceof Double) {
   sum.add( i, items.elementAt(1));
}

19
+1 আমি ভাবছি আপনি আসলে যাচাই করতে চান elementAt(0); জাভার বেশিরভাগ স্টাফ শূন্য-ভিত্তিক।
ChssPly76

17

গুগলের প্রথম যেহেতু এটি প্রথম প্রশ্ন তাই আমি typeofএখানেও জাভাস্ক্রিপ্ট স্টাইল বিকল্প যুক্ত করব :

myObject.getClass().getName() // String

8

প্রতিবিম্বটি ধীরে ধীরে, তবে এমন পরিস্থিতিতে কাজ করে যখন আপনি জানতে চান যে এটি কুকুর বা বিড়ালের টাইপের এবং প্রাণীর উদাহরণ নয়। সুতরাং আপনি যেমন কিছু করতে চাই:

if(null != items.elementAt(1) && items.elementAt(1).getClass().toString().equals("Cat"))
{
//do whatever with cat.. not any other instance of animal.. eg. hideClaws();
}

উপরের উত্তরটি না বলে কাজ করা যায় না, নাল চেকিং অংশটি বাদ দিয়ে প্রয়োজনীয়।

উত্তর দেওয়ার অন্য একটি উপায় যা জেনেরিক ব্যবহার করা এবং আইটেমের যে কোনও উপাদান হিসাবে আপনার দ্বিগুণ গ্যারান্টিযুক্ত।

List<Double> items = new ArrayList<Double>();

9
আপনি কি দয়া করে নেতিবাচক রেটিংয়ের কারণগুলি রাখতে শিখতে পারবেন? আমি জাভাতেও নতুন এবং আমি উত্তরটি দিয়ে কী ভুল তা দেখতে চাই তাই আমাকে এটি চেষ্টা করার দরকার নেই!
enrey

4
আমি একটি হার্ড কোডিং স্ট্রিংয়ের সাথে তুলনা করা এড়াতে চাই, যদি শ্রেণীর নাম পরিবর্তন হয় তবে উদাহরণস্বরূপ উপস্থিত রয়েছে তাই আমরা এটি ব্যবহার করি।

@ এনারি উদাহরণস্বরূপ এর সুবিধা কী?
চার্লস শিলার

@ চার্লসশিলার সুবিধাটি "বিড়াল" স্ট্রিংয়ের দেরীতে আবদ্ধ।
রবিনো

4
+1 .getClass().toString()কারণ একতরফা নির্ভরতা অযোগ্যতার কারণে আমি শ্রেণিটি আমদানি করতে পারছি না। ধন্যবাদ.
হ্যানস স্নাইডারমায়ার

1

এই কাজটি অর্জনের জন্য নিয়মিত অভিব্যক্তি ব্যবহার করুন। নীচের কোড উল্লেখ করুন।

public static void main(String[] args) {
    try {

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Enter your content: ");
        String data = reader.readLine();            
        boolean b1 = Pattern.matches("^\\d+$", data);
        boolean b2 = Pattern.matches("[0-9a-zA-Z([+-]?\\d*\\.+\\d*)]*", data); 
        boolean b3 = Pattern.matches("^([+-]?\\d*\\.+\\d*)$", data);
        if(b1) {
            System.out.println("It is integer.");
        } else if(b2) {
            System.out.println("It is String. ");
        } else if(b3) {
            System.out.println("It is Float. ");
        }           
    } catch (IOException ex) {
        Logger.getLogger(TypeOF.class.getName()).log(Level.SEVERE, null, ex);
    }
}

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