Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.JOptionPane;
- public class Main {
- public static void main(String args[]){
- String theirInput = JOptionPane.showInputDialog(null, "Enter the number to convert, followed by the base it's in, followed by the base to convert to");
- char theirInputArr[] = theirInput.toCharArray();
- StringBuilder startNumB = new StringBuilder();
- StringBuilder baseNumB = new StringBuilder();
- StringBuilder nextBaseNumB = new StringBuilder();
- for(int i = 0, word = 0; i<theirInputArr.length; i++){
- if(theirInputArr[i] != ' ' && word == 0){
- startNumB.append(theirInputArr[i]);
- }else if(theirInputArr[i] != ' ' && word == 1){
- baseNumB.append(theirInputArr[i]);
- }else if(theirInputArr[i] != ' ' && word == 2){
- nextBaseNumB.append(theirInputArr[i]);
- }else if(theirInputArr[i] == ' '){
- word++;
- }
- }
- String startNum = startNumB.toString();
- int baseNum = Integer.parseInt(baseNumB.toString());
- int nextBaseNum = Integer.parseInt(nextBaseNumB.toString());
- if(baseNum > 36 || nextBaseNum > 36){
- JOptionPane.showMessageDialog(null, "Bases cannot be larger than 36");
- }else{
- char fullArr[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
- char firBaseArr[] = new char[baseNum];
- char nextBaseArr[] = new char[nextBaseNum];
- for(int i = 0; i<baseNum; i++){
- firBaseArr[i] = fullArr[i];
- }
- for(int i = 0; i<nextBaseNum; i++){
- nextBaseArr[i] = fullArr[i];
- }
- char checkSameArr[] = new char[startNum.length()];
- char actualNumArr[] = startNum.toCharArray();
- int decVal = 0;
- for(int i = 0, i2 = 0;;){
- checkSameArr[i] = firBaseArr[i2];
- if(!(checkSameArr[i] == actualNumArr[i])){
- decVal++;
- i2++;
- }else{
- if(i<checkSameArr.length-1){
- decVal++;
- i++;
- }else{
- break;
- }
- i2 = 0;
- }
- }
- char newNum[] = new char[decVal];
- boolean check = false;
- for(int i = 0, place = 0, subVal = 0; i<decVal; i++){
- place = 0;
- check = false;
- if(!(i-subVal >= nextBaseArr.length)){
- newNum[place] = nextBaseArr[i-subVal];
- }else{
- for(int findPlace = 0;;findPlace++){
- if(nextBaseArr[findPlace] == newNum[place] && findPlace<nextBaseArr.length-1){
- newNum[place++] = nextBaseArr[findPlace++];
- break;
- }else if(nextBaseArr[findPlace] == newNum[place++] && !(findPlace<nextBaseArr.length-1)){
- while(!check){
- if(place++ == nextBaseArr[nextBaseArr.length-1]){
- newNum[place++] = '0';
- newNum[place+2] = nextBaseArr[1];
- subVal += nextBaseNum;
- check = true;
- }else{
- place++;
- }
- }
- break;
- }
- }
- }
- }
- JOptionPane.showMessageDialog(null, "New number = " + newNum.toString());
- }
- }
- }
Add Comment
Please, Sign In to add comment