Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Printing (or storing)  boolean value of an object

Posted on 2014-12-25
5
Medium Priority
?
163 Views
Last Modified: 2014-12-27
So here is sample code to check if hex and binary numbers are the same, Doesn't really matter in this concept. The point is that the return value is boolean, so object holds it. Task should be accomplished without using separate boolean variable to hold boolean value.

With this statement I can print if returned boolean value for object cv is true or not:

System.out.println(cv.compareBinToHex(binary, hex));

Open in new window


Now, the question is how to make it like this

cv.compareBinToHex(binary, hex);
System.out.println(cv.someMethod());

Open in new window


Where someMethod()) would be preferably some if already exist Java object method to achieve this?

Whole code look like this:

public class CheckValue {

	public static void main(String[] args) {
		// 158
		// 10011110
		// 9E
		String binary = "10011110";
		String hex = "9E";

		CheckValue cv = new CheckValue();

		System.out.println(cv.compareBinToHex(binary, hex));

		// Is there any elegnt way to make this work.
		// not only for System.out.println but to later acess if the value was
		// true or false
		// without sepcially assigning boolan variable to hold this value
		// cv.compareBinToHex(binary, hex);
		// System.out.println(cv.....somtething .... something....);

	}

	public boolean compareBinToHex(String binary, String hex) {
		int nl = convertToBase(binary, 2);
		int n2 = convertToBase(hex, 16);
		if (nl < 0 || n2 < 0) {
			return false;

		} else {
			return nl == n2;
		}
	}

	private int convertToBase(String number, int base) {
		if (base < 2 || (base > 10 && base != 16))
			return -1;
		int value = 0;
		for (int i = number.length() - 1; i >= 0; i--) {
			int digit = digitToValue(number.charAt(i));
			if (digit < 0 || digit >= base) {
				return -1;
			}
			int exp = number.length() - 1 - i;
			value += digit * Math.pow(base, exp);
		}
		return value;
	}

	public int digitToValue(char c) {
		if (c >= '0' && c <= '9')
			return c - '0';
		else if (c >= 'A' && c <= 'F')
			return 10 + c - 'A';
		else if (c >= 'a' && c <= 'f')
			return 10 + c - 'a';
		return -1;
	}
}

Open in new window

0
Comment
Question by:KPax
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 

Expert Comment

by:greenearth
ID: 40517972
package com.test;

public class CheckValue {

    private boolean val;
   
    public boolean isVal() {
        return val;
    }

   
    public void setVal(boolean val) {
        this.val = val;
    }

    public static void main(String[] args) {
        // 158
        // 10011110
        // 9E
        String binary = "10011110";
        String hex = "9E";

        CheckValue cv = new CheckValue();
        cv.compareBinToHex(binary, hex);
        System.out.println(cv.isVal());

        // Is there any elegnt way to make this work.
        // not only for System.out.println but to later acess if the value was
        // true or false
        // without sepcially assigning boolan variable to hold this value
        // cv.compareBinToHex(binary, hex);
        // System.out.println(cv.....somtething .... something....);

    }

    public void compareBinToHex(String binary, String hex) {
        int nl = convertToBase(binary, 2);
        int n2 = convertToBase(hex, 16);
        if (nl < 0 || n2 < 0) {
            setVal(false);

        } else {
            setVal(nl == n2);
        }
    }

    private int convertToBase(String number, int base) {
        if (base < 2 || (base > 10 && base != 16))
            return -1;
        int value = 0;
        for (int i = number.length() - 1; i >= 0; i--) {
            int digit = digitToValue(number.charAt(i));
            if (digit < 0 || digit >= base) {
                return -1;
            }
            int exp = number.length() - 1 - i;
            value += digit * Math.pow(base, exp);
        }
        return value;
    }

    public int digitToValue(char c) {
        if (c >= '0' && c <= '9')
            return c - '0';
        else if (c >= 'A' && c <= 'F')
            return 10 + c - 'A';
        else if (c >= 'a' && c <= 'f')
            return 10 + c - 'a';
        return -1;
    }
}
0
 

Expert Comment

by:greenearth
ID: 40517973
I have posted the solution above by encapsulating your boolean value in setter/getters
0
 

Author Comment

by:KPax
ID: 40518196
Yes, I know it could be done through Getters/Setters, but is there any other way to get intrinsic value of and Object, in this case it's true/false return value?
0
 
LVL 32

Accepted Solution

by:
awking00 earned 2000 total points
ID: 40519739
boolean compHex2Bin = cv.compareBinToHex(binary, hex);
System.out.println(compHex@Bin); ==> prints either true or false
0
 

Author Closing Comment

by:KPax
ID: 40519843
Excellent, so simple yet so true!

Please just note that it should be:
 
System.out.println(compHex2Bin);  // ==> prints either true or false

not

System.out.println(compHex@Bin);  // ==> prints either true or false

compHex@Bin is probably typo, i guess :)
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
The viewer will learn how to implement Singleton Design Pattern in Java.
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…
Suggested Courses

604 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question