使用Replace或ReplaceAll函数不会删除换行符

时间:2014-09-02 17:29:09

标签: java android string replaceall

我在String变量中得到以下值:

យោងតាមឯកឧត្តមតាំង សាមឿនលេខាសម្តេចកិត្តិព្រឹទ្ធបណ្ឌិតប៊ុន រ៉ានីហ៊ុនសែនបានប្រាប់ក្រុមអ្នក\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

我已经使用了以下所有功能,但没有一个可以工作,任何一个人都指导我在做什么错误?

 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;

    }

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我无法看到整个代码,但我认为你的问题是来自这个String的引用,请看看我的测试:

enter image description here

也许你正在调用你的方法,但没有更新你对象的真实参考。

我不确切地知道你的问题是什么。如果可以,请更好地解释你想要的东西。

---编辑----

以这种方式尝试您的方法:

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

答案 1 :(得分:0)

尝试

replace("\n", "");

private static final String newLine = System.getProperty("line.separator");

replace(newline, "");

这样的事情对你有用