-1
나는 계산기를 만들지 만, "sin"의 왼쪽에 아무것도 없다면 나는 결과를 얻지 못한다. 그러나 만일 내가 "죄"앞에 숫자를 써 넣으면 그것은 조작을 수행하고 오른쪽에있는 숫자의 죄를 내게 줄 것입니다.IndexOf and SIN
case 6: {
int pos = str.indexOf("s");
for (int i = 1; i <= pos; i++) {
당신의 인덱스를 찾을 수 있습니다 : 나는 코드의이 비트에서 "sin43"
import java.util.Scanner;
public class InputScanner_operations {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String str;
System.out.println("Input your equation");
str = input.nextLine();
int X = str.indexOf("X");
int x = str.indexOf("x");
int div = str.indexOf("/");
int plu = str.indexOf("+");
int sub = str.indexOf("-");
int sin = str.indexOf("s");
int type = 0;
if (X != -1)
type = 1;
else if (x != -1)
type = 2;
else if (div != -1)
type = 3;
else if (plu != -1)
type = 4;
else if (sub != -1)
type = 5;
else if (sin != -1)
type = 6;
else
type = 0;
switch (type) {
case 1: {
int pos = str.indexOf("X");
for (int i = 1; i <= pos; i++) {
String upToNCharacters = str.substring(0,
Math.min(str.length(), i));
String downToNCharacters = str.substring(pos + 1,
Math.max(str.length(), i));
if (i == pos) {
Double left = Double.parseDouble(upToNCharacters);
Double right = Double.parseDouble(downToNCharacters);
System.out.println(left * right);
}
}
}
break;
case 2: {
int pos = str.indexOf("x");
for (int i = 1; i <= pos; i++) {
String upToNCharacters = str.substring(0,
Math.min(str.length(), i));
String downToNCharacters = str.substring(pos + 1,
Math.max(str.length(), i));
if (i == pos) {
Double left = Double.parseDouble(upToNCharacters);
Double right = Double.parseDouble(downToNCharacters);
System.out.println(left * right);
}
}
}
break;
case 3: {
int pos = str.indexOf("/");
for (int i = 1; i <= pos; i++) {
String upToNCharacters = str.substring(0,
Math.min(str.length(), i));
String downToNCharacters = str.substring(pos + 1,
Math.max(str.length(), i));
if (i == pos) {
Double left = Double.parseDouble(upToNCharacters);
Double right = Double.parseDouble(downToNCharacters);
System.out.println(left/right);
}
}
}
break;
case 4: {
int pos = str.indexOf("+");
for (int i = 1; i <= pos; i++) {
String upToNCharacters = str.substring(0,
Math.min(str.length(), i));
String downToNCharacters = str.substring(pos + 1,
Math.max(str.length(), i));
if (i == pos) {
Double left = Double.parseDouble(upToNCharacters);
Double right = Double.parseDouble(downToNCharacters);
System.out.println(left + right);
}
}
}
break;
case 5: {
int pos = str.indexOf("-");
for (int i = 1; i <= pos; i++) {
String upToNCharacters = str.substring(0,
Math.min(str.length(), i));
String downToNCharacters = str.substring(pos + 1,
Math.max(str.length(), i));
if (i == pos) {
Double left = Double.parseDouble(upToNCharacters);
Double right = Double.parseDouble(downToNCharacters);
System.out.println(left - right);
}
}
}
case 6: {
int pos = str.indexOf("s");
for (int i = 1; i <= pos; i++) {
String upToNCharacters = str.substring(0,
Math.min(str.length(), i));
String downToNCharacters = str.substring(pos + 3,
Math.max(str.length(), i));
if (i == pos) {
@SuppressWarnings("unused")
Double left = Double.parseDouble(upToNCharacters);
Double right = Double.parseDouble(downToNCharacters);
System.out.println(Math.sin(right));
}
}
}
break;
default:
System.out.println("Please check your formatting");
}
}
}
음식에 대한 생각 : '죄 45 + 죄 120'을 입력하면 어떻게 될까요? – JonK
그것은 우리가 살펴볼 수있는 많은 코드입니다. 문제가 어디 있다고 생각하니? 우리는 문제와 무관 한 코드를 이해하려고 노력하는 데 시간을 낭비하고 싶지 않습니다. –
가끔 'indexOf'의 윤리에 의문을 제기하는 동안 나는 "SIN"이라고 부르기에 짧게 그만 둡니다. –