Guest User

Untitled

a guest
Oct 21st, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. import javax.swing.JOptionPane;
  2.  
  3. public class Main {
  4. public static void main(String args[]){
  5. String theirInput = JOptionPane.showInputDialog(null, "Enter the number to convert, followed by the base it's in, followed by the base to convert to");
  6. char theirInputArr[] = theirInput.toCharArray();
  7. StringBuilder startNumB = new StringBuilder();
  8. StringBuilder baseNumB = new StringBuilder();
  9. StringBuilder nextBaseNumB = new StringBuilder();
  10. for(int i = 0, word = 0; i<theirInputArr.length; i++){
  11. if(theirInputArr[i] != ' ' && word == 0){
  12. startNumB.append(theirInputArr[i]);
  13. }else if(theirInputArr[i] != ' ' && word == 1){
  14. baseNumB.append(theirInputArr[i]);
  15. }else if(theirInputArr[i] != ' ' && word == 2){
  16. nextBaseNumB.append(theirInputArr[i]);
  17. }else if(theirInputArr[i] == ' '){
  18. word++;
  19. }
  20. }
  21. String startNum = startNumB.toString();
  22. int baseNum = Integer.parseInt(baseNumB.toString());
  23. int nextBaseNum = Integer.parseInt(nextBaseNumB.toString());
  24. if(baseNum > 36 || nextBaseNum > 36){
  25. JOptionPane.showMessageDialog(null, "Bases cannot be larger than 36");
  26. }else{
  27. char fullArr[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
  28. char firBaseArr[] = new char[baseNum];
  29. char nextBaseArr[] = new char[nextBaseNum];
  30. for(int i = 0; i<baseNum; i++){
  31. firBaseArr[i] = fullArr[i];
  32. }
  33. for(int i = 0; i<nextBaseNum; i++){
  34. nextBaseArr[i] = fullArr[i];
  35. }
  36. char checkSameArr[] = new char[startNum.length()];
  37. char actualNumArr[] = startNum.toCharArray();
  38. int decVal = 0;
  39. for(int i = 0, i2 = 0;;){
  40. checkSameArr[i] = firBaseArr[i2];
  41. if(!(checkSameArr[i] == actualNumArr[i])){
  42. decVal++;
  43. i2++;
  44. }else{
  45. if(i<checkSameArr.length-1){
  46. decVal++;
  47. i++;
  48. }else{
  49. break;
  50. }
  51. i2 = 0;
  52. }
  53. }
  54. char newNum[] = new char[decVal];
  55. boolean check = false;
  56. for(int i = 0, place = 0, subVal = 0; i<decVal; i++){
  57. place = 0;
  58. check = false;
  59. if(!(i-subVal >= nextBaseArr.length)){
  60. newNum[place] = nextBaseArr[i-subVal];
  61. }else{
  62. for(int findPlace = 0;;findPlace++){
  63. if(nextBaseArr[findPlace] == newNum[place] && findPlace<nextBaseArr.length-1){
  64. newNum[place++] = nextBaseArr[findPlace++];
  65. break;
  66. }else if(nextBaseArr[findPlace] == newNum[place++] && !(findPlace<nextBaseArr.length-1)){
  67. while(!check){
  68. if(place++ == nextBaseArr[nextBaseArr.length-1]){
  69. newNum[place++] = '0';
  70. newNum[place+2] = nextBaseArr[1];
  71. subVal += nextBaseNum;
  72. check = true;
  73. }else{
  74. place++;
  75. }
  76. }
  77. break;
  78. }
  79. }
  80. }
  81. }
  82. JOptionPane.showMessageDialog(null, "New number = " + newNum.toString());
  83. }
  84. }
  85. }
Add Comment
Please, Sign In to add comment