# String to hex und hex-Werte löschen



## Cheefrocker (24. Okt 2008)

Hallo zusammen.

Ich versuche grade String in hex umzuwandeln. Darüber hinaus muss den Hex-Wert: 0D aus dem String löschen und den Hexwert wieder in String umwandeln. 


Hier ist die Methode

```
public static String StringtoHex(String input, String regex, String replacement) {
        byte[] array = input.getBytes();
        StringBuffer sb = new StringBuffer();
        String line = "";
        String newline = "";
        for (int i = 0; i < array.length; ++i) {
            //Umgewandelte String in HexString
            line = Integer.toHexString((array[i] & 0xFF) | 0x100).toUpperCase().substring(1, 3);
            //Was soll ersetzt werden.
            newline = line.replaceAll(regex, replacement);
            sb.append(newline);
        }
        return sb.toString();
    }
```

Leider funktioniert das umwandeln nicht 1:1. Er schlunkt mir die 0D und andere Werte beim umwandeln. 

Hat einer eine Idee wie es richtig ist?


besten dank im voraus.


----------



## Ariol (24. Okt 2008)

?? Geht doch:


```
public static void main(String[] args)
	{
		char c = (char) Byte.parseByte("0D", 16);
		System.out.println(StringtoHex("123" + c + "123", "0D", ""));
		System.out.println(alternativStringtoHex("123" + c + "123", "0D", ""));

	}

	public static String StringtoHex(String input, String regex, String replacement)
	{
		byte[] array = input.getBytes();
		StringBuffer sb = new StringBuffer();

		for (int i = 0; i < array.length; ++i)
		{
			String line = Integer.toHexString((array[i] & 0xFF) | 0x100).toUpperCase().substring(1, 3);
			sb.append(line.replaceAll(regex, replacement));
		}

		return sb.toString();
	}

	public static String alternativStringtoHex(String input, String regex, String replacement) {
	
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < input.length(); ++i) {
        	byte charbyte = (byte)input.charAt(i);
        	if(charbyte != Byte.parseByte(regex, 16))
        	{
        		sb.append(Integer.toHexString((charbyte & 0xFF) | 0x100).toUpperCase().substring(1, 3));
        	}
        }
        return sb.toString();
    }
```


----------



## Gast (29. Okt 2008)

Vielen dank hat sich erledigt. mein Problem war das ich ein file mit readline eingelesen habe. Readline schmeisst aber die \r\nr raus(hex 0d) und dadurch habe Sie nach der umwandelung nach hex nicht mehr gesehen.


----------

