0

Detail explanation about the program: This program takes an input string (letter, word etc..) and converts all the letters into a numerical value that has been assigned for each alphabetic character, then stores the result in an array.

An example of the numerical assignment for alphabetic characters is shown below:

1 = A I J Q Y
2 = B K R
3 = C G L S
4 = D M T
5 = E H N X
6 = U V W
7 = O Z
8 = F P

This is an example of my code using Java for Android:

public class NameCon extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.nameconvert);

        Button btn = (Button) findViewById(R.id.btnConvert);
        Button clear = (Button) findViewById(R.id.btnClearName);
        final EditText et1 = (EditText) findViewById(R.id.edittxtName);
        final TextView result = (TextView) findViewById(R.id.txtViewSum);

        result.setText("Input Character Only");
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Map<Character, Integer> map;
                String str = new String(et1.getText().toString());
                str = str.replaceAll("","");   
                char[]crt = str.trim().toCharArray();  
                int[] intArray = new int[crt.length]; 

                map = new HashMap<>(26);
                map.put('a', 1);
                map.put('i', 1);
                map.put('j', 1);
                map.put('q', 1);
                map.put('y', 1);
                map.put('b', 2);
                map.put('k', 2);
                map.put('r', 2);
                map.put('c', 3);
                map.put('g', 3);
                map.put('l', 3);
                map.put('s', 3);
                map.put('d', 4);
                map.put('m', 4);
                map.put('t', 4);
                map.put('e', 5);
                map.put('h', 5);
                map.put('n', 5);
                map.put('x', 5);
                map.put('u', 6);
                map.put('v', 6);
                map.put('w', 6);
                map.put('o', 7);
                map.put('z', 6);
                map.put('f', 8);
                map.put('p', 8);

                for(int i = 0; i < crt.length; i ++){
                    intArray[i] = map.get(crt[i]);
                    result.setText("Values is "+ intArray[i]);
                }
            }
        });
    }
}

My problem now is that I can not get the result as the examples shown below. Then the program to convert the letters to numbers. Then each of the letters to sum.

This is I want to show: Input Name with keyboard => Tim Cahill
Output show on textview = 25

Many thanks for helping me.

caveman
  • 1,755
  • 1
  • 14
  • 19
Sivilizes
  • 1
  • 3

2 Answers2

1

This should work :

public class NameCon extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.nameconvert);

    Button btn = (Button) findViewById(R.id.btnConvert);
    Button clear = (Button) findViewById(R.id.btnClearName);
    final EditText et1 = (EditText) findViewById(R.id.edittxtName);
    final TextView result = (TextView) findViewById(R.id.txtViewSum);
    Map<Character, Integer> map = new HashMap<>(26);
    map.put('a', 1);
    map.put('i', 1);
    map.put('j', 1);
    map.put('q', 1);
    map.put('y', 1);
    map.put('b', 2);
    map.put('k', 2);
    map.put('r', 2);
    map.put('c', 3);
    map.put('g', 3);
    map.put('l', 3);
    map.put('s', 3);
    map.put('d', 4);
    map.put('m', 4);
    map.put('t', 4);
    map.put('e', 5);
    map.put('h', 5);
    map.put('n', 5);
    map.put('x', 5);
    map.put('u', 6);
    map.put('v', 6);
    map.put('w', 6);
    map.put('o', 7);
    map.put('z', 6);
    map.put('f', 8);
    map.put('p', 8);

    result.setText("Input Character Only");
    btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            String str = et1.getText().toString();
            char[]crt = str.trim().toCharArray();  
            int sum = 0;

            for(int i = 0; i < crt.length; i ++){
                sum += map.get(crt[i]);
            }
            result.setText("Values is "+ sum);
        }
    });}}

Hope it helps !

lcw_gg
  • 679
  • 5
  • 14
0

fields declarations

private EditText editTextUserInput = null;
private Button buttonGetTotalNumber = null;
private HashMap<String, Integer> map = new HashMap<String, Integer>();
private char[] charArray = null;
private ArrayList<Integer> charNumberList = null;

onCreate()

map.put("a", 1);
    map.put("i", 1);
    map.put("j", 1);
    map.put("q", 1);
    map.put("y", 1);
    map.put("b", 2);
    map.put("k", 2);
    map.put("r", 2);
    map.put("c", 3);
    map.put("g", 3);
    map.put("l", 3);
    map.put("s", 3);
    map.put("d", 4);
    map.put("m", 4);
    map.put("t", 4);
    map.put("e", 5);
    map.put("h", 5);
    map.put("n", 5);
    map.put("x", 5);
    map.put("u", 6);
    map.put("v", 6);
    map.put("w", 6);
    map.put("o", 7);
    map.put("z", 6);
    map.put("f", 8);
    map.put("p", 8);

    editTextUserInput = (EditText)findViewById(R.id.editTextUserInput);
    buttonGetTotalNumber = (Button)findViewById(R.id.buttonConvertToNumber);

    buttonGetTotalNumber.setOnClickListener(new OnClickListener()
    {

        @Override
        public void onClick(View v)
        {
            // TODO Auto-generated method stub
            if(editTextUserInput.length()>0)
            {
                charNumberList = new ArrayList<Integer>();
                charArray = editTextUserInput.getText().toString().trim().toCharArray();

                for(int i=0; i < charArray.length;i++)
                {
                    Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
                    while(iterator.hasNext())
                    {
                        Map.Entry<String, Integer> dataEntry = iterator.next();

                        String charData = ""+charArray[i];
                        if(charData.equalsIgnoreCase(dataEntry.getKey()))
                        {
                            charNumberList.add(dataEntry.getValue());
                        }
                    }
                }
            }

            Toast.makeText(getApplicationContext(), ""+getTotalOfInput(charNumberList), Toast.LENGTH_LONG).show();
        }
    });

method to get total number of input

public int getTotalOfInput(ArrayList<Integer> resultNumberList)
{
    int total=0;
    for(int i=0; i < resultNumberList.size(); i++)
    {
        int number = resultNumberList.get(i);
        total = total + number;
    }
    return total;
}
krunal shah
  • 364
  • 2
  • 14