Search code examples
javaandroidstringreplaceall

Line Breaks are not being removed with Replace or ReplaceAll Functions


I am getting following values in my String variable:

យោងតាមឯកឧត្តមតាំង សាមឿនលេខាសម្តេចកិត្តិព្រឹទ្ធបណ្ឌិតប៊ុន រ៉ានីហ៊ុនសែនបានប្រាប់ក្រុមអ្នក\r\nសារព័ត៌មានថា៖ក្នុងជំនួបសម្តែងការគួរសមនិងទទួលថវិការ៦រយដុល្លាអាមេរិក និងសម្ភារៈឧបករណ៍\r\nព្រមទាំងបរិក្ខារពេទ្យ មួយចំនួនពីក្រុមយុវជនកម្ពុជាជូនលោកជំទាវ អាន្នីសុខអានអនុប្រធានតំណាង\r\nដ៏ខ្ពង់ខ្ពស់សម្តេចកិត្តិព្រឹទ្ធបណ្ឌិតប៊ុន រ៉ានីហ៊ុន សែនប្រធានកាកបាទក្រហមកម្ពុជានៅទីស្នាក់ការកណ្តាល\r\nកាកបាទក្រហមកម្ពុជាអូរបែកក្អមក្នុងរាជធានីភ្នំពេញនាថ្ងៃទី២ខែកញ្ញាឆ្នាំ២០១៤។\r\n\r\nលោកជំទាវអាន្នីសុខ អានបានកោតសសើរចំពោះក្រុមយុវជនកម្ពុជាដែលបានយកថវិកានិងសម្ភារៈមកជូន\r\nកាកបាទក្រហមកម្ពុជាសកម្មភាពនេះបង្ហាញពីអោយឃើញពីបេះដូងមនុស្សធម៌នៃវប្បធម៌ចែ

in which i have \r\n with different sequence
for example:
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n

i have used following all functions none of them works, any one guide me what mistake am i doing?

 private List<ContentValues> parseJsonBreakingNews(String json) throws JSONException {
        List<ContentValues> result = new ArrayList<ContentValues>();
        JSONArray allItems = new JSONArray(json);
        JSONObject item;

        for (int i = 0; i < allItems.length(); i++) {
            item = allItems.getJSONObject(i);
            ContentValues values = new ContentValues();

            values.put(TableBreakingNews._ID, item.getInt("id"));

            String x = item.getString("title_kh");
            String y = item.getString("content_kh");
            String title = RemoveSpecialCharacters(x);
            String description =  RemoveSpecialCharacters(y);

            values.put(TableBreakingNews.TITLE_KH, title);
            values.put(TableBreakingNews.CONTENT_KH,description);
            values.put(TableBreakingNews.DATE, item.getString("dt"));
            result.add(values);
        }

        return result;
    }

    private String RemoveSpecialCharacters(String JunkData)
    {
        JunkData = JunkData.replaceAll("\\r", "");
        JunkData = JunkData.replaceAll("\\n", "");
        //JunkData = JunkData.replaceAll("[\n\r]+", " ");
        //JunkData = JunkData.replaceAll("[\r\n]+", " ");
        //JunkData = JunkData.replaceAll("\\r", "2222222222222");
        //JunkData = JunkData.replaceAll("\\n", "111111111111");
        //JunkData = JunkData.replaceAll("\\r\\n", "0000000000000000");

        // String newLine = System.getProperty("line.separator");

        //JunkData = JunkData.replace(newLine, "");
        //JunkData = JunkData.replace('\n', '');

        //JunkData =    RemoveLineTerminationCharacters(JunkData);
        //JunkData = RemoveLineTabs(JunkData);

        return JunkData;

    }

any help would be appreciated.


Solution

  • I can't see the whole code, but i think your problem is the reference from this String, have a look at my test:

    enter image description here

    Maybe you are calling your method but not updating your real reference of the object.

    I don't know exactly what is your problem. if you could, please explain better what you want.

    --- Edited ----

    Try your method this way:

    private String removeSpecialCharacters(String junkData) {
        junkData = junkData.replaceAll("(\r\n|\n)", "");
        return junkData;
    }