java - कैसे स्ट्रिंग को बिट्स में कनवर्ट करें और फिर int सरणी में-जावा




string bit (5)

आप इस के लिए देख रहे हैं:

string.getBytes();

सूची नहीं, यह एक सरणी है, लेकिन आप इसे बाद में उपयोग कर सकते हैं, यहां तक ​​कि इसे पूर्णांक में कनवर्ट करने के लिए भी।

जावा में बिट्स (नहीं बाइट्स) या बिट्स की स्ट्रिंग कन्वर्ट कैसे करें (मैं कुछ ऑपरेशन बाद में करूंगा) और कैसे इनट्स के सरणी में परिवर्तित करें (प्रत्येक 32 बिट्स int में बदल जाते हैं और फिर इसे सरणी में डालते हैं I जावा में इस तरह के रूपांतरण कभी नहीं किए।

String->array of bits->(some operations I'll handle them)->array of ints

ठीक है, हो सकता है कि आप स्ट्रिंग को बिट्स रूपांतरण में छोड़ दें और सीधे s.toCharArray() की एक सरणी में परिवर्तित करें (यदि आप चाहते हैं कि प्रत्येक वर्ण का यूनिकोड वैल्यू है), s.toCharArray() का उपयोग कर जहां s एक String वेरिएबल है।


यह "एबीसी" को बाइट में बदल देगा और उसके बाद कोड संबंधित एएससीआईआई कोड (यानी 97 98 99) में "एबीसी" प्रिंट करेगा।

byte a[]=new byte[160];
String s="abc";
a=s.getBytes();
for(int i=0;i<s.length();i++)
{
    System.out.print(a[i]+" ");
}

हो सकता है (मेरे वर्तमान कंप्यूटर में मेरे पास कोई संकलक नहीं है और अगर यह काम करता है तो जांच नहीं है, लेकिन यह आपकी थोड़ी मदद कर सकता है):

String st="this is a string";
byte[] bytes=st.getBytes();
List<Integer> ints=new ArrayList<Integer>();
ints.addAll(bytes);

यदि कंपाइलर में विफल रहता है

ints.addAll(bytes);

आप इसे इसके साथ बदल सकते हैं

for (int i=0;i<bytes.length();i++){
   ints.add(bytes[i]);
}

और यदि आप बिल्कुल सरणी प्राप्त करना चाहते हैं:

ints.toArray();

यह उत्तर है

String s = "foo";
      byte[] bytes = s.getBytes();
      StringBuilder binary = new StringBuilder();
      for (byte b : bytes)
      {
         int val = b;
         for (int i = 0; i < 8; i++)
         {
            binary.append((val & 128) == 0 ? 0 : 1);
            val <<= 1;
         }
      //   binary.append(' ');
      }
      System.out.println("'" + s + "' to binary: " + binary);




bits