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
Medium Priority
163 Views
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));
``````

Now, the question is how to make it like this

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

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;
}
}
``````
0
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
• 2
• 2

Expert Comment

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

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

Author Comment

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

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

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

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
Course of the Month8 days, 22 hours left to enroll