这个代码我知道写的很烂...但是我想知道通过这个思路来解决这道题。
代码:
public class Main{
static int n;
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer(br.readLine().trim());
int c = sb.length();
if (fuhao(sb) == 1) {
String s1 = sb.substring(0, n);
String s2 = sb.substring(n + 1, c);
StringBuffer sb1 = new StringBuffer(s1);
StringBuffer sb2 = new StringBuffer(s2);
sb1 = r(sb1);
sb2 = r(sb2);
sb.insert(0, sb1);
System.out.print(Integer.parseInt(sb1.toString()));
System.out.print('.');
sb.insert(0, sb2);
System.out.print(Integer.parseInt(sb2.toString()));
return;
}
if (fuhao(sb) == 2) {
String s1 = sb.substring(0, n);
StringBuffer sb1 = new StringBuffer(s1);
sb1 = r(sb1);
sb.insert(0, sb1);
System.out.print(Integer.parseInt(sb1.toString()));
System.out.print('%');
return;
}
if (fuhao(sb) == 3) {
String s1 = sb.substring(0, n);
String s2 = sb.substring(n + 1, c);
StringBuffer sb1 = new StringBuffer(s1);
StringBuffer sb2 = new StringBuffer(s2);
sb1 = r(sb1);
sb2 = r(sb2);
sb.insert(0, sb1);
System.out.print(Integer.parseInt(sb1.toString()));
System.out.print('/');
sb.insert(0, sb2);
System.out.print(Integer.parseInt(sb2.toString()));
return;
}
if (fuhao(sb) == 0) {
if (sb.charAt(0) == '-') {
sb.delete(0, 1);
sb.reverse();
sb.insert(0, '-');
} else {
sb.reverse();
}
System.out.print(Integer.parseInt(sb.toString()));
return;
}
}
public static StringBuffer r(StringBuffer sb) {
return sb.reverse();
}
public static int fuhao(StringBuffer sb) {
int c = sb.length();
for (int i = 0; i < c; i++) {
if (sb.charAt(i) == '.') {
n = i;
return 1;
}
if (sb.charAt(i) == '%') {
n = i;
return 2;
}
if (sb.charAt(i) == '/') {
n = i;
return 3;
}
}
return 0;
}
}