Solved

Printing (or storing)  boolean value of an object

Posted on 2014-12-25
5
143 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
  • 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 31

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

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
bunnyEars2 challenge 6 68
array6 challenfge 6 63
How Complex Is This Java Course ? 9 63
Cipher Configuration on Apache HTTPD 4 20
After being asked a question last year, I went into one of my moods where I did some research and code just for the fun and learning of it all.  Subsequently, from this journey, I put together this article on "Range Searching Using Visual Basic.NET …
Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
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.

705 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now