Skip to content

Instantly share code, notes, and snippets.

@lexich
Created June 28, 2012 18:34
Show Gist options
  • Save lexich/3013105 to your computer and use it in GitHub Desktop.
Save lexich/3013105 to your computer and use it in GitHub Desktop.
Reverse string without buffer
public class StringReverce{
/**
* Reverse string without buffer
*/
public static byte[] reverse(byte[] str){
int end = str.length - 1;
for( int i = 0; i < end - i; ++i ){
str[i] = (byte)( str[i] ^ str[end-i] );
str[end-i] = (byte)( str[end-i] ^ str[i] );
str[i] = (byte)(str[i] ^ str[end-i]);
}
return str;
}
private static void println(String pred, byte[] data){
System.out.print(pred);
for( byte b : data ){
System.out.print((char)b);
}
System.out.print('\n');
}
public static void main(String[] args){
byte str[] = (args.length > 0 ? args[0] : "Simple string").getBytes();
println("Input:", str);
str = reverse(str);
println("Output:", str);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment