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




string bit (6)

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

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

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

string.getBytes();

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


यह "एबीसी" को बाइट में बदल देगा और उसके बाद कोड संबंधित एएससीआईआई कोड (यानी 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();

ध्यान दें कि स्ट्रिंग वर्णों का अनुक्रम है, और जावा में प्रत्येक वर्ण डेटा प्रकार एक एकल 16-बिट यूनिकोड वर्ण है। इसमें '\ u0000' (या 0) का न्यूनतम मूल्य और '\ uffff' (या 65,535 समावेशी) का अधिकतम मूल्य है। चार पूर्णांक मान प्राप्त करने के लिए ऐसा करें:

    String str="test";
    String tmp="";

    int result[]=new int[str.length()/2+str.length()%2];
    int count=0;

    for(char c:str.toCharArray()) {
         tmp+=Integer.toBinaryString((int)c);
         if(tmp.length()==14) {
            result[count++]=Integer.valueOf(tmp,2);
            //System.out.println(tmp+":"+result[count-1]);
            tmp="";
         }
    }

    for(int i:result) {
        System.out.print(i+" ");
    }

यह उत्तर है

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);

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





bits