import java.io.UnsupportedEncodingException;
class Main {
static {
System.loadLibrary("Main");
}
static int utf16LengthJava(final String s) {
return s.length();
}
static int utf8LengthJava(final String s) {
try {
final byte[] utf8 = s.getBytes("UTF-8");
return utf8.length;
} catch (final UnsupportedEncodingException e) {
System.err.println(e);
}
throw new Error();
}
static int utf16LengthNative(final String s) {
JavaEnvFor_utf16LengthNative jEnv = new JavaEnvFor_utf16LengthNative(s);
return jEnv._returnResult;
}
private static final class JavaEnvFor_utf16LengthNative {
java.lang.String _s;
private int c2j(final int cEnv) throws Exception {
return this._s.length();
}
int _returnResult;
private native void j2c();
JavaEnvFor_utf16LengthNative(final String s) {
this._s = s;
this.j2c();
}
}
static int utf8LengthNative(final String s) {
JavaEnvFor_utf8LengthNative jEnv = new JavaEnvFor_utf8LengthNative(s);
return jEnv._returnResult1;
}
private static final class JavaEnvFor_utf8LengthNative {
java.lang.String _s1;
private java.lang.String c2j1(final int cEnv) throws Exception {
return this._s1;
}
int _returnResult1;
private native void j2c1();
JavaEnvFor_utf8LengthNative(final String s) {
this._s1 = s;
this.j2c1();
}
}
public static void main(String[] args) {
final String s = "Sch\u00F6ne Gr\u00FC\u00DFe!";
System.out.println(s);
System.out.println("UTF16 length (Java) : " + utf16LengthJava(s));
System.out.println("UTF8 length (Java) : " + utf8LengthJava(s));
System.out.println("UTF16 length (native): " + utf16LengthNative(s));
System.out.println("UTF8 length (native): " + utf8LengthNative(s));
}
}