String alle X Zeichen zerlegen?

MadMax2581

Mitglied
Hallo!

Kann mir vielleicht jemand bei meinem (eigentlich einfachen) Problem helfen? Ich hab einen String (Integer.toBinaryString) in dem eine Binärzahl steht und muss diese Binärzahl jetzt in einzelne Bytes (8 Bits = 8 Zeichen aus dem String) zerlegen.

Ist es möglich einen String alle 8 Zeichen zu zerlegen und wenn es keine 8 Zeichen mehr sind diese mit 0 aufzufüllen?

Danke für eure Hilfe.

Max
 
Ja die gibt es

Java:
public class StringTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int dez = 10;
		
		StringBuilder builder = new StringBuilder("00000000");
		builder.append(Integer.toBinaryString(dez));
		char [] bits = builder.substring(builder.length() - 8 ).toCharArray();

	}

}
 
Hm, danke für die Antwort. Aber entweder hab ich jetzt dein Beispiel nicht richtig verstanden oder du mich nicht. Das auffüllen mit Nullen war nun nicht wirklich mein Problem.

Ich mach mal ein Beispiel:

Ich habe eine 32Bit-Zahl -> 11001010101010101011101000110010
und will diese nun in 4 -> 8Bit-Werte zerlegt haben

1.: 11001010
2.: 10101010
3.: 10111010
4.: 00110010

Ich bräuchte jetzt ne Lösung wie ich den lange String in die 4 kurzen zerlegen kann.

Max
 
Wo ist das Problem? Mein Code liefert Dir doch ein Characterarray. Ob Du das mit 8 oder 32 Bit machst ist doch Jacke wie Hose. Dann kannst Du doch das Array auslesen wie Du willst.

Java:
public class StringTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int dez = 10;
		
		StringBuilder builder = new StringBuilder("00000000000000000000000000000000");
		builder.append(Integer.toBinaryString(dez));
		char [] bits = builder.substring(builder.length() - 32 ).toCharArray();

		String byte1 = new String(bits,0,8);
		String byte2 = new String(bits,8,8);
		String byte3 = new String(bits,16,8);
		String byte4 = new String(bits,24,8);
		
		System.out.println(byte1);
		System.out.println(byte2);
		System.out.println(byte3);
		System.out.println(byte4);
	}

}

EDIT: substring() wäre auch ein guter Plan....
 
Zuletzt bearbeitet:
Danke für deine Ausführung, aber genau das wollte ich eigentlich umgehen. Die Lösung mit dem Substring hatte ich auch, aber ich wollte halt das hochzählen der Variablen vermeiden, weil ich sonst erst noch die Länge der binären Zahl bestimmen muss. Dachte es gibt vielleicht was wo ich einfach mit ner while-Schleife drüber laufen kann, dass das Ende dann einfach selber erkennt.

Aber dann werd ich es eben doch so lösen müssen. Trotzdem vielen Danke.

Max
 
Hallo!

Kann mir vielleicht jemand bei meinem (eigentlich einfachen) Problem helfen? Ich hab einen String (Integer.toBinaryString) in dem eine Binärzahl steht und muss diese Binärzahl jetzt in einzelne Bytes (8 Bits = 8 Zeichen aus dem String) zerlegen.

Ist es möglich einen String alle 8 Zeichen zu zerlegen und wenn es keine 8 Zeichen mehr sind diese mit 0 aufzufüllen?

Danke für eure Hilfe.

Max


Das war doch Dein Problem. Daraus geht hervor, dass Du einen int-Wert (Integer.toBinaryString) umwandelst. Der kann aber höchstens 32 Bit haben. Meine Lösung füllt immer auf 32 bit auf und teilt in die 4 Byte die daraus entstehen. Da wird nix gezählt.

Ich verstehe nicht welche Lösung Dir vorschwebt, bzw. wo genau das Problem ist.

Grüße
 
Zurück