0

2つの文字の数値を合計および減算し、結果の文字をPHPで返す2つの関数を作成しました。これは次のようなものです。

function sumchars($c1, $c2) {
    return chr(ord($c1) + ord($c2));
}

function subchars($c1, $c2) {
    return chr(ord($c1) - ord($c2));
}

さて、私もこれら2つの関数をJavaで作成しましたが、これらはPHPのものとして機能するはずです。

public static String sumchars(char c1, char c2) {
    return (char)((int)c1 + int(c2));
}

public static String subchars(char c1, char c2) {
    return (char)((int)c1 -+ int(c2));
}

PHP関数chr(​​)は、ASCII範囲外(255より大きい)および負の結果(0未満)の結果を処理する方法を知っているようです。Javaでも同じことは起こりません(関数の代わりに整数の結果をキャストするだけです)。そのための簡単な関数を作成できることは知っていますが、すでに1つあるのではないかと思います。これらの関数を非常に高速にしたいので、自分で作成した関数ではなく、すでに実装されているものを使用したいと思います。

よろしくお願いします!

4

2 に答える 2

4

256を追加して負の値がないことを確認してから、結果を256で変更して、256より大きくないことを確認します(または、if elseステートメントを使用します)。

public static String sumchars(char c1, char c2) {
    return (char)((((int)c1 + int(c2)) + 256) % 256);
}

public static String subchars(char c1, char c2) {
    return (char)(((int)c1 - int(c2)) + 256) % 256);
}
于 2012-04-06T14:47:11.307 に答える
0

Characterクラスを使用できます。

http://docs.oracle.com/javase/6/docs/api/java/lang/Character.html

Character.isLetter()
Character.isDigit()
Character.isLetterOrDigit()

そして、返されたブール値に基づいて何をすべきかを決定します。

于 2012-04-06T14:47:59.130 に答える