public class MyClass
{
public static void main(String args[])
{
String a = "(4 + 4i)";
String b = "(2 + 3i)";
int g = 1;
int c = a.charAt(g); // sets c to 52
System.out.println(c); // prints 52
System.out.println((double) a.charAt(g)); // prints 52.0
System.out.println(a.charAt(g)); // prints 4
System.out.println(2 * a.charAt(g)); // prints 104
}
}
文字列に "i"が含まれている虚数を乗算するコードを作成しようとしていました。だから私は最初に取ってintとdoubleに変換すると思った。これは私を困惑させた52を与えました。しかし、私がコンソールに直接印刷したとき、それは機能しましたが、二重のものがなければ。他の場所で使う必要があるので、これは役に立たない。ではここで何が起こっているのですか?文字列の一部をintとdoubleに解析し、解析を使わずに文字列内の数値を操作する方法がありますか?そして、虚数、すなわち「e^pi * i = 1」を扱うことができる方法はありますか?charAtは、印刷されるデータ型によって印刷が異なるのはなぜですか?
あなたが 'char'sを扱う場合、あなたは[ASCII-Codes](https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange)と文字 '' 4 ''にはASCIIコード「52」があります。 'char'をint型に変換すると(' int c = a.charAt(...) ')、ASCIIコードが数字を表しますが、ASCIIコードが得られます。 ( 'System.out.println(a.charAt(...))'を直接印刷すると、Javaは実際の文字のASCIIコードを翻訳するのに十分スマートです。(備考:ASCII部分は実際にはうそです、Javaの文字はUTF-16です) – Turing85
52は文字 '4'の文字コードです –
複素数については、https://stackoverflow.com/questions/2997053を参照してください。/does-java-have-a-complex-numbers-for-complex-numbers – Alex