Solved

Printing (or storing)  boolean value of an object

Posted on 2014-12-25
5
153 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 500 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

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
ejb entity bean example issue 2 25
collection output issue 9 59
wild fly 8 startup error 2 37
import as existing maven project 3 34
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.

762 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