JAVA中String转byte[],再转回String,为什么和之前的String不相等了?
Stringa="灯光开";byte[]b=a.getBytes();Stringc=newString(b);1——>//if(a=="灯光开")toggleButto...
String a = "灯光开";
byte[] b = a.getBytes();
String c = new String(b);
1——> // if (a == "灯光开") toggleButton.setChecked(true);
1——> // textView.setText(a);
2——> // if (c == "灯光开") toggleButton.setChecked(true);
2——> // textView.setText("c");
以上是代码,这是我写的安卓的一段
如果启用标号1的两行代码,可以把toggleButton打开,并在文本框中输出“灯光开”
如果启用标号2的两行代码,无法把toggleButton打开,但也在文本框中输出“灯光开”,看起来并无不同。
我要使用蓝牙的输入输出流来通信,所以信息会历经String转byte[],再转回String的过程,但是转回来就像这样无法操作了,求高人解答!
后来发现,即使这样都不相等,不能设置按钮状态,byte[]到底是个什么东西- -
String a = "灯光开";
byte[] b = a.getBytes();
String c = "灯光开";
byte[] d = c.getBytes();
if (b == d) toggleButton.setChecked(true); 展开
byte[] b = a.getBytes();
String c = new String(b);
1——> // if (a == "灯光开") toggleButton.setChecked(true);
1——> // textView.setText(a);
2——> // if (c == "灯光开") toggleButton.setChecked(true);
2——> // textView.setText("c");
以上是代码,这是我写的安卓的一段
如果启用标号1的两行代码,可以把toggleButton打开,并在文本框中输出“灯光开”
如果启用标号2的两行代码,无法把toggleButton打开,但也在文本框中输出“灯光开”,看起来并无不同。
我要使用蓝牙的输入输出流来通信,所以信息会历经String转byte[],再转回String的过程,但是转回来就像这样无法操作了,求高人解答!
后来发现,即使这样都不相等,不能设置按钮状态,byte[]到底是个什么东西- -
String a = "灯光开";
byte[] b = a.getBytes();
String c = "灯光开";
byte[] d = c.getBytes();
if (b == d) toggleButton.setChecked(true); 展开
1个回答
展开全部
字符串比较用equals,另外建议常量写在左边,防止空指针!
String a = "灯光开";
byte[] b = a.getBytes();
String c = new String(b);
1——> // if ("灯光开".equals(a)) toggleButton.setChecked(true);
1——> // textView.setText(a);
2——> // if ("灯光开".equals(c)) toggleButton.setChecked(true);
2——> // textView.setText(c);
我们通常使用 getBytes 来转码, 处理中文乱码问题
String tempstr = new String(a.getBytes("ISO-8859-1"),"UTF-8");
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询