?? datastringdeal.java
字號:
count=count-2;
i--;
}
if (string[i]=="/"){
if (Double.parseDouble(string[i+1])==0)
return "The Expression is not valid \nor may be misconceived!\nYou must enter the start button to restart!";
string[i-1]=String.valueOf(Double.parseDouble(string[i-1])/Double.parseDouble(string[i+1]));
for (int j=i;j<=count-2;j++)
string[j]=string[j+2];
count=count-2;
i--;
}
}
//加減的處理
for (int i=0;i<=count;i++){
if ((string[0])=="-"||(string[0])=="+"){
if (string[0]=="-"){
string[0]=String.valueOf(-Double.parseDouble(string[1]));
for (int j=1;j<=count-1;j++)
string[j]=string[j+1];
count--;
}
if (string[0]=="+"){
string[0]=String.valueOf(Double.parseDouble(string[1]));
for (int j=1;j<=count-1;j++)
string[j]=string[j+1];
count--;
}
}
if (string[i]=="+"){
string[i-1]=String.valueOf(Double.parseDouble(string[i-1])+Double.parseDouble(string[i+1]));
for (int j=i;j<=count-2;j++)
string[j]=string[j+2];
count=count-2;
i--;
}
if (string[i]=="-"){
string[i-1]=String.valueOf(Double.parseDouble(string[i-1])-Double.parseDouble(string[i+1]));
for (int j=i;j<=count-2;j++)
string[j]=string[j+2];
count=count-2;
i--;
}
}
return string[0];
}
//將二進制字符串轉化為十進制字符串
public String BinaryToDecimalString(String inner){
if (inner=="")
return inner;
char[] temp = inner.toCharArray();
boolean hasPoint=false;
int sep=0;
for (int i=0;i<temp.length;i++)
if (temp[i]=='.'){
hasPoint=true;
sep=i;
}
//有小數點的情況
if (hasPoint){
double data=0;
for (int i=sep-1;i>=0;i--)
if (temp[i]=='1')
data = data+(double)(Math.pow(2,sep-1-i));
for (int i=sep+1;i<temp.length;i++)
if (temp[i]=='1')
data = data+(double)(Math.pow(2,(sep+1-i-1)));
String str = String.valueOf(data);
return str;
}
//無小數點的情況
int data=0;
for (int i=temp.length-1;i>=0;i--)
if (temp[i]=='1')
data = data+(int)(Math.pow(2,temp.length-1-i));
String str = String.valueOf(data);
return str;
}
//將八進制字符串轉化為十進制字符串
public String OctalToDecimalString(String inner){
if (inner=="")
return inner;
char[] temp = inner.toCharArray();
int sep=0;
boolean hasPoint=false;
for (int i=0;i<temp.length;i++)
if (temp[i]=='.'){
hasPoint=true;
sep=i;
}
//有小數點的情況
if (hasPoint){
double data=0;
for (int i=sep-1;i>=0;i--){
if (temp[i]=='7')
data = data+7*(int)(Math.pow(8,sep-1-i));
if (temp[i]=='6')
data = data+6*(int)(Math.pow(8,sep-1-i));
if (temp[i]=='5')
data = data+5*(int)(Math.pow(8,sep-1-i));
if (temp[i]=='4')
data = data+4*(int)(Math.pow(8,sep-1-i));
if (temp[i]=='3')
data = data+3*(int)(Math.pow(8,sep-1-i));
if (temp[i]=='2')
data = data+2*(int)(Math.pow(8,sep-1-i));
if (temp[i]=='1')
data = data+(int)(Math.pow(8,sep-1-i));
}
for (int i=sep+1;i<temp.length;i++){
if (temp[i]=='7')
data = data+7*(int)(Math.pow(8,(sep+1-i-1)));
if (temp[i]=='6')
data = data+6*(int)(Math.pow(8,(sep+1-i-1)));
if (temp[i]=='5')
data = data+5*(int)(Math.pow(8,(sep+1-i-1)));
if (temp[i]=='4')
data = data+4*(int)(Math.pow(8,(sep+1-i-1)));
if (temp[i]=='3')
data = data+3*(int)(Math.pow(8,(sep+1-i-1)));
if (temp[i]=='2')
data = data+2*(int)(Math.pow(8,(sep+1-i-1)));
if (temp[i]=='1')
data = data+(int)(Math.pow(8,(sep+1-i-1)));
}
String str = String.valueOf(data);
return str;
}
//無小數點的情況
double data=0;
for (int i=temp.length-1;i>=0;i--){
if (temp[i]=='7')
data = data+7*(Math.pow(8,temp.length-1-i));
if (temp[i]=='6')
data = data+6*(Math.pow(8,temp.length-1-i));
if (temp[i]=='5')
data = data+5*(Math.pow(8,temp.length-1-i));
if (temp[i]=='4')
data = data+4*(Math.pow(8,temp.length-1-i));
if (temp[i]=='3')
data = data+3*(Math.pow(8,temp.length-1-i));
if (temp[i]=='2')
data = data+2*(Math.pow(8,temp.length-1-i));
if (temp[i]=='1')
data = data+(Math.pow(8,temp.length-1-i));
}
String str = String.valueOf(data);
return str;
}
//十六進制轉化為十進制的實例方法
public String HexToDecimalString(String inner){
if (inner=="")
return inner;
char[] temp = inner.toCharArray();
int sep=0;
boolean hasPoint=false;
for (int i=0;i<temp.length;i++)
if (temp[i]=='.'){
hasPoint=true;
sep=i;
}
//有小數點的情況
if (hasPoint){
double data=0;
for (int i=sep-1;i>=0;i--){
if (temp[i]=='F')
data = data+15*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='E')
data = data+14*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='D')
data = data+13*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='C')
data = data+12*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='B')
data = data+11*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='A')
data = data+10*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='9')
data = data+9*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='8')
data = data+8*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='7')
data = data+7*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='6')
data = data+6*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='5')
data = data+5*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='4')
data = data+4*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='3')
data = data+3*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='2')
data = data+2*(int)(Math.pow(16,sep-1-i));
if (temp[i]=='1')
data = data+(int)(Math.pow(16,sep-1-i));
}
for (int i=sep+1;i<temp.length;i++){
if (temp[i]=='F')
data = data+15*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='E')
data = data+14*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='D')
data = data+13*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='C')
data = data+12*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='B')
data = data+11*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='A')
data = data+10*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='9')
data = data+9*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='8')
data = data+8*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='7')
data = data+7*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='6')
data = data+6*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='5')
data = data+5*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='4')
data = data+4*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='3')
data = data+3*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='2')
data = data+2*(int)(Math.pow(16,(sep+1-i-1)));
if (temp[i]=='1')
data = data+(int)(Math.pow(16,(sep+1-i-1)));
}
String str = String.valueOf(data);
return str;
}
//無小數點的情況
int data=0;
for (int i=temp.length-1;i>=0;i--){
if (temp[i]=='F')
data = data+15*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='E')
data = data+14*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='D')
data = data+13*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='C')
data = data+12*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='B')
data = data+11*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='A')
data = data+10*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='9')
data = data+9*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='8')
data = data+8*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='7')
data = data+7*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='6')
data = data+6*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='5')
data = data+5*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='4')
data = data+4*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='3')
data = data+3*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='2')
data = data+2*(int)(Math.pow(16,temp.length-1-i));
if (temp[i]=='1')
data = data+(int)(Math.pow(16,temp.length-1-i));
}
String str = String.valueOf(data);
return str;
}
//十進制字符串轉化為二進制字符串
public String DecimalToBinaryString(String string){
if (string=="")
return string;
double data = Double.parseDouble(string);
int data1 = (int)data;
double data2 = data-(int)data;
String data1String = Integer.toBinaryString(data1);
double rational=0;
if ((data-(int)data)!=0){
for (int i=0;i<4;i++)
if ((data2*2)>=1){
rational = rational+0.1*Math.pow(10,-i);
data2 = data2*2-1;
}
String rationalString = String.valueOf(rational);
char digits[] = rationalString.toCharArray();
rationalString = "";
for (int i=2;i<digits.length;i++)
rationalString = rationalString+String.valueOf(digits[i]);
string = data1String+"."+rationalString;
return string;
}
return data1String;
}
//十進制轉化為八進制字符串
public String DecimalToOctalString(String string){
if (string=="")
return string;
double data = Double.parseDouble(string);
int data1 = (int)data;
double data2 = data-(int)data;
String data1String = Integer.toOctalString(data1);
double rational=0;
if ((data-(int)data)!=0){
for (int i=0;i<4;i++)
if ((data2*8)>=1){
rational = rational+0.1*Math.floor(data2*8)*Math.pow(10,-i);
data2 = data2-(int)(data2*8);
}
String rationalString = String.valueOf(rational);
char digits[] = rationalString.toCharArray();
rationalString = "";
for (int i=2;i<digits.length;i++)
rationalString = rationalString+String.valueOf(digits[i]);
string = data1String+"."+rationalString;
return string;
}
return data1String;
}
//十進制轉化為十六進制字符串
public String DecimalToHexString(String string){
if (string=="")
return string;
double data = Double.parseDouble(string);
int data1 = (int)data;
double data2 = data-(int)data;
String data1String = Integer.toHexString(data1);
data1String = data1String.toUpperCase();
double rational=0;
if ((data-(int)data)!=0){
for (int i=0;i<4;i++)
if ((data2*16)>=1){
rational = rational+0.1*Math.floor(data2*16)*Math.pow(10,-i);
data2 = data2-(int)(data2*16);
}
String rationalString = String.valueOf(rational);
char digits[] = rationalString.toCharArray();
rationalString = "";
for (int i=2;i<digits.length;i++)
rationalString = rationalString+String.valueOf(digits[i]);
string = data1String+"."+rationalString;
return string;
}
return data1String;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -