Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I need help coding this activity. I have an arrayList of integers with their rom

ID: 3904774 • Letter: I

Question

I need help coding this activity. I have an arrayList of integers with their roman numeral and I'm doing Junit testing. I was thinking of using a switch statement because I don't realy understand the recursive approach. I'm trying to teach myself java but I got stuck.

public class HinduToRomanNumeralConverter {

public String convert(int numberToConvert) {

String str = "null";

return str;

}

}

_____________________________________________________________________________

@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{ 1, "I"},
{ 2, "II" },
{ 3, "III" },
{ 4, "IV" },
{ 5, "V" },
{ 6, "VI" },
{ 7, "VII" },
{ 8, "VIII" },
{ 9, "IX" },
{ 10, "X" },
{ 11, "XI" },
{ 14, "XIV" },
{ 15, "XV" },
{ 16, "XVI" },
{ 19, "XIX" },
{ 20, "XX" },
{ 30, "XXX" },
{ 40, "XL", },
{ 49, "XLIX" },
{ 50, "L" },
{ 51, "LI" },
{ 59, "LIX" },
{ 60, "LX" },
{ 70, "LXX" },
{ 80, "LXXX" },
{ 90, "XC" },
{ 91, "XCI" },
{ 92, "XCII" },
{ 93, "XCIII" },
{ 94, "XCIV" },
{ 95, "XCV" },
{ 96, "XCVI" },
{ 97, "XCVII" },
{ 98, "XCVIII" },
{ 99, "XCIX" },
{ 100, "C" },
{ 101, "CI" }, // This is complete and satisfactory
{ 110, "CX" },
{ 127, "CXXVII" },
{ 144, "CXLIV" },
{ 200, "CC" },
{ 300, "CCC" },
{ 400, "CD" },
{ 500, "D" },
{ 549, "DXLIX" },
{ 600, "DC" },
{ 700, "DCC" },
{ 800, "DCCC" },
{ 900, "CM" },
{ 1000, "M" },
{ 2000, "MM" },
{ 2222, "MMCCXXII" },
{ 2345, "MMCCCXLV" },
{ 3000, "MMM" }, // This is exceeds expectations
});
}

Explanation / Answer

String convert(int number) { number = Math.min(3999, Math.max(1, number)); // wraps number between 1-3999 String asRomanNumerals = ""; // Array including numerals in ascending order String RN = "IVXLCDM"; int i = 0; // Index used to keep track which digit we are translating while (number > 0) { switch(number % 10) { case 1: asRomanNumerals = String.valueOf(RN.charAt(i)) + asRomanNumerals; break; case 2: asRomanNumerals = String.valueOf(RN.charAt(i)) + String.valueOf(RN.charAt(i)) + asRomanNumerals; break; case 3: asRomanNumerals = String.valueOf(RN.charAt(i)) + String.valueOf(RN.charAt(i)) + String.valueOf(RN.charAt(i)) + asRomanNumerals; break; case 4: asRomanNumerals = String.valueOf(RN.charAt(i)) + String.valueOf(RN.charAt(i+1)) + asRomanNumerals; break; case 5: asRomanNumerals = String.valueOf(RN.charAt(i+1)) + asRomanNumerals; break; case 6: asRomanNumerals = String.valueOf(RN.charAt(i+1)) + String.valueOf(RN.charAt(i)) + asRomanNumerals; break; case 7: asRomanNumerals = String.valueOf(RN.charAt(i+1)) + String.valueOf(RN.charAt(i)) + String.valueOf(RN.charAt(i)) + asRomanNumerals; break; case 8: asRomanNumerals = String.valueOf(RN.charAt(i+1)) + String.valueOf(RN.charAt(i)) + String.valueOf(RN.charAt(i)) + String.valueOf(RN.charAt(i)) +asRomanNumerals; break; case 9: asRomanNumerals = String.valueOf(RN.charAt(i)) + String.valueOf(RN.charAt(i+2)) + asRomanNumerals; break; } number = (int) number / 10; i += 2; } return asRomanNumerals; }

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote