java - उपयुक्त जावा डेटाटाइप खोजना




int byte (2)

त्रुटि: अवैध वर्ण: \ 8211 प्रत्येक अगर बयान से पहले

आप में यह वर्ण डाल करने के लिए हमें \u8211

यदि बयान और कैसे संख्या के इनपुट ले जाएगा जो किसी भी डेटा प्रकार में समायोजित नहीं किया जा सकता है?

आपको एक डेटाटाइप का उपयोग करना चाहिए जो कि समायोजित और नंबर कर सकते हैं।

इसकी बजाय इसे आज़माएं

while (input.hasNextLine()) {
    BigInteger number = new BigInteger(input.nextLine());

    int bitLength = number.bitLength() + 1;
    if (bitLength <= Bytes.SIZE)
         System.out.println(" \u8211 byte");

    if (bitLength <= Short.SIZE)
         System.out.println(" \u8211 short");

    // more checks.

    if (bitLength > Long.SIZE)
        // too big.

समस्या को करने के बाद, यह काम करने के लिए बहुत कुछ करना है, लेकिन BigInteger.bitLength () का उपयोग करना अधिक सुरुचिपूर्ण समाधान है।

प्रतीक नहीं मिल सकता है अगर (bitLength <= Int.SIZE)

जावा में कोई प्रकार Int नहीं है, यह Integer

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    while (input.hasNextLine()) {
        BigInteger number = new BigInteger(input.nextLine());

        int bitLength = number.bitlength();
        if (bitLength <= Bytes.SIZE)
            System.out.println("\u8211 byte");
        if (bitLength <= Short.SIZE)
            System.out.println("\u8211 short");
        if (bitLength <= Int.SIZE)
            System.out.println("\u8211 int");
        if (bitLength <= Long.SIZE)
            System.out.println("\u8211 long");

        if (bitLength > Long.SIZE)
            System.out.println(number + " can't be fitted anywhere.");
    }
} 

कार्य: एक उपयुक्त डेटा प्रकार नमूना इनपुट ढूंढने के लिए: 5

-150
 150000
 1500000000
 213333333333333333333333333333333333
-100000000000000

नमूना आउटपुट:

-150 can be fitted in:
short
int
long

150000 can be fitted in:
int
long

1500000000 can be fitted in:
int
long
213333333333333333333333333333333333 can't be fitted anywhere.

-100000000000000 can be fitted in:
long

त्रुटि 1:

error: cannot find symbol
    int bitLength = number.bitlength();
                      ^

त्रुटि 2:

symbol:   method bitlength()
location: variable number of type BigInteger

त्रुटि 3:

error: cannot find symbol
    if (bitLength <= Int.SIZE)
                 ^
    symbol:   variable Int
    location: class Solution

आप बस डेटा प्रकारों की सीमाओं के साथ स्थितियों को रख सकते हैं और जांच कर सकते हैं कि इनपुट नंबर किस प्रकार डेटा प्रकार में आता है।

    class FindDataType {
public static void main(String[] argh) {
    Scanner sc = new Scanner(System.in);
    //no. of input values
    int t = sc.nextInt();
    for (int i = 0; i < t; i++) {
        try {
            //Take input as long data type
            long x = sc.nextLong();
            System.out.println(x + " can be fitted in:");
            //Putting conditions to check the data type
            if (x >= -128 && x <= 127) {
                System.out.println("* byte");
                System.out.println("* short");
                System.out.println("* int");
                System.out.println("* long");
            } else if (x >= -32768 && x <= 32767) {
                System.out.println("* short");
                System.out.println("* int");
                System.out.println("* long");
            } else if (x >= -2147483648 && x <= 2147483647) {
                System.out.println("* int");
                System.out.println("* long");
            } else if (x >= -9223372036854775808l
                    && x <= 9223372036854775807l) {
                System.out.println("* long");
            }
        } catch (Exception e) {
            //Printing exception if no data type matches.
            System.out.println(sc.next() + " can't be fitted anywhere.");
        }

    }
    sc.close();
}}






short