I wrote about letters before, but this is another topic, I have a json answer that contains 2 objects, from and to , from is what needs to be changed, and to is what it will be changed to.
My code is:
// for example, the EnteredText is "ab b test ab" . EnteredString = EnteredText.getText().toString(); for (int i = 0; i < m_jArry.length(); i++) { JSONObject jo_inside = m_jArry.getJSONObject(i); String Original = jo_inside.getString("from"); String To = jo_inside.getString("to"); if(isMethodConvertingIn){ EnteredString = EnteredString.replace(" ","_"); EnteredString = EnteredString.replace(Original,To + " "); } else { EnteredString = EnteredString.replace("_"," "); EnteredString = EnteredString.replace(To + " ", Original); } } LoadingProgress.setVisibility(View.GONE); SetResultText(EnteredString); ShowResultCardView();
For example, json answer:
{ "Response":[ {"from":"a","to":"bhduh"},{"from":"b","to":"eieja"},{"from":"tes","to":"neesj"} ] }
String.replace() will not work here, because first it will replace a with bhduh , then b with eieja , BUT here is the problem, it will convert b to bhduh to eieja , which I don't want.
I want to perfectly convert letters and words to string according to Json, but this is what I fail.
New code:
if(m_jArry.length() > 0){ HashMap<String, String> m_li; EnteredString = EnteredText.getText().toString(); Log.i("TestAf_","Before Converting: " + EnteredString); HashMap<String,String> replacements = new HashMap<String,String>(); for (int i = 0; i < m_jArry.length(); i++) { JSONObject jo_inside = m_jArry.getJSONObject(i); String Original = jo_inside.getString("from"); String To = jo_inside.getString("to"); if(isMethodConvertingIn){ //EnteredString = EnteredString.replace(" ","_"); replacements.put(Original,To); Log.i("TestAf_","From: " + Original + " - To: " + To + " - Loop: " + i); //EnteredString = EnteredString.replace(" ","_"); //EnteredString = EnteredString.replace(Original,To + " "); } else { EnteredString = EnteredString.replace("_"," "); EnteredString = EnteredString.replace("'" + To + "'", Original); } } Log.i("TestAf_","After Converting: " + replaceTokens(EnteredString,replacements)); // Replace Logic Here // When Finish, Do : LoadingProgress.setVisibility(View.GONE); SetResultText(replaceTokens(EnteredString,replacements)); ShowResultCardView();
Exit:
10-10 19:51:19.757 12113-12113/? I/TestAf_: Before Converting: ab a ba 10-10 19:51:19.757 12113-12113/? I/TestAf_: From: a - To: bhduh - Loop: 0 10-10 19:51:19.757 12113-12113/? I/TestAf_: From: b - To: eieja - Loop: 1 10-10 19:51:19.757 12113-12113/? I/TestAf_: From: o - To: neesj - Loop: 2 10-10 19:51:19.758 12113-12113/? I/TestAf_: After Converting: ab a ba