迭代存储在String中的一系列位

时间:2014-03-12 20:11:59

标签: java loops ascii

String seq= "101010101";
byte[] bytes = seq.getBytes();

for (int i = 0; i < bytes.length; i++) {
    byte b=bytes[i]; 
    System.out.println(b);
}

它将打印1和0的ASCII代码,分别为48和49.我想打印1和0.我该怎么做?

6 个答案:

答案 0 :(得分:1)

String seq= "101010101";
 char[] bits = seq.toCharArray();

   for (int i = 0; i < bits.length; i++) {
                char b=bits[i]; 
                System.out.println(b);
  }

答案 1 :(得分:1)

String seq= "101010101";
char[] charArray = seq.toCharArray();

for (int i = 0; i < charArray.length; i++) {
            char b=charArray[i]; 
            System.out.println(b);
}

答案 2 :(得分:0)

您可以b - 48打印1或0。

System.out.println(b - 48);

答案 3 :(得分:0)

您的序列是String,其中包含字符01一系列二进制数。 getBytes()为您提供String中每个字符的字节数。你想要的只是迭代String中的字符。

for (char c : seq.toCharArray()) {
  System.out.println(c);
}

答案 4 :(得分:0)

听起来你真的想要使用以下循环:

String seq = "101010101";
for (int=0; i < seq.length; i++) {
   String s = seq.substring(i,i+1);
   ... or char c = seg.charAt(i);
   System.out.println(s) .. (or c)
}

为什么要尝试使用字节?

答案 5 :(得分:-1)

使用以下代码:

final int ASCII_0 = 48;
String seq= "101010101";
byte[] bytes = seq.getBytes();

for (int i = 0; i < bytes.length; i++) {
    byte b=bytes[i]; 
    System.out.println(b - ASCII_0);
}