Java 程序打印 unicode 值而不是字符串
Java program printing unicode values instead of string
我正在尝试添加 2 个二进制字符串,但得到的结果是 Unicode
输入: "11""1"
输出: "\u0001\u0000\u0000"
我想要我的答案 100
class Solution {
public String addBinary(String a, String b) {
String ans=new String();
int i=a.length()-1;
int j=b.length()-1;
int carry=0;
while(i>=0 || j>=0 || carry==1){
int add=carry;
if(i>=0) add+=a.charAt(i)-'0';
if(j>=0) add+=b.charAt(j)-'0';
ans=(char)(add%2)+ans;
carry=add/2;
i--;
j--;
}
return ans;
}
}
计算出要附加到结果字符串的值后,您需要将二进制值 (0, 1, …) 转换回字符 ('0', '1', …) .
这个:
ans=(char)(add%2)+ans;
应该是这样的:
ans = (char)((add%2) + '0') + ans;
好的。解析两个 String
(s) 并添加值。 Return 二进制数字的 String
结果。我会将其设为 static
方法。喜欢,
public static String addBinary(String a, String b) {
return Integer.toBinaryString(Integer.parseInt(a, 2)
+ Integer.parseInt(b, 2));
}
public static void main(String[] args) {
System.out.println(addBinary("1", "11"));
}
输出(按要求)
100
在另一个字符串部分的开头添加是不正确的。你需要使用 ans="" + (add%2) + ans;
public String addBinary(String a, String b) {
String ans="";
int i=a.length()-1;
int j=b.length()-1;
int carry=0;
while(i>=0 || j>=0 || carry==1){
int add=carry;
if(i>=0) add+=a.charAt(i)-'0';
if(j>=0) add+=b.charAt(j)-'0';
ans="" + (add%2) + ans;
carry=add/2;
i--;
j--;
}
System.out.print("ans=" + ans);
return ans;
}
我正在尝试添加 2 个二进制字符串,但得到的结果是 Unicode
输入: "11""1"
输出: "\u0001\u0000\u0000"
我想要我的答案 100
class Solution {
public String addBinary(String a, String b) {
String ans=new String();
int i=a.length()-1;
int j=b.length()-1;
int carry=0;
while(i>=0 || j>=0 || carry==1){
int add=carry;
if(i>=0) add+=a.charAt(i)-'0';
if(j>=0) add+=b.charAt(j)-'0';
ans=(char)(add%2)+ans;
carry=add/2;
i--;
j--;
}
return ans;
}
}
计算出要附加到结果字符串的值后,您需要将二进制值 (0, 1, …) 转换回字符 ('0', '1', …) .
这个:
ans=(char)(add%2)+ans;
应该是这样的:
ans = (char)((add%2) + '0') + ans;
好的。解析两个 String
(s) 并添加值。 Return 二进制数字的 String
结果。我会将其设为 static
方法。喜欢,
public static String addBinary(String a, String b) {
return Integer.toBinaryString(Integer.parseInt(a, 2)
+ Integer.parseInt(b, 2));
}
public static void main(String[] args) {
System.out.println(addBinary("1", "11"));
}
输出(按要求)
100
在另一个字符串部分的开头添加是不正确的。你需要使用 ans="" + (add%2) + ans;
public String addBinary(String a, String b) {
String ans="";
int i=a.length()-1;
int j=b.length()-1;
int carry=0;
while(i>=0 || j>=0 || carry==1){
int add=carry;
if(i>=0) add+=a.charAt(i)-'0';
if(j>=0) add+=b.charAt(j)-'0';
ans="" + (add%2) + ans;
carry=add/2;
i--;
j--;
}
System.out.print("ans=" + ans);
return ans;
}