Question

  String word = "ABCD";
        StringBuffer str = new StringBuffer (word);
        int counter = 0;
        for (int ch = 0; ch < word.length(); ch ++)
        {
            int number = word.charAt(ch)- 'A' + 1;
            str.setCharAt(counter, (char) number);
            if (ch != word.length ()-1)
                str.insert(counter +1, '-');
            counter += 2;

        }
        System.out.println (str);

    }

I want my output to be 1-2-3-4, so A = 1 and B= 2.... etc. We can assume that all the input are in upper case. But the my code produce random symbols. So how do I fix the code to produce 1-2-3-4 without re writing the whole thing?

Was it helpful?

Solution

You're only missing the conversion from int back to char. The line

str.setCharAt(counter, (char) number);

should be

str.setCharAt(counter, (char) ('0' + number));
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top