簡體   English   中英

如何從Java中的特定字符串中刪除特定字符?

[英]How do I delete specific characters from a particular String in Java?

例如,我從文本文件中提取文本字符串,我需要這些字來形成一個數組。 但是,當我做所有這些時,一些單詞以逗號(,)或句號(。)結尾,或者甚至附加括號(這都是完全正常的)。

我想要做的就是擺脫那些角色。 我一直試圖在Java中使用那些預定義的String方法來做到這一點,但我無法解決它。

將變量重新分配給子字符串:

s = s.substring(0, s.length() - 1)

另外一種解決問題的方法是:您可能還需要考慮使用StringTokenizer來讀取文件並將分隔符設置為您不希望成為單詞的一部分的字符。

使用:

String str = "whatever";
str = str.replaceAll("[,.]", "");

replaceAll采用正則表達式 這個:

[,.]

...查找每個逗號和/或句號。

要刪除最后一個角色,請按Mark Byers所說

s = s.substring(0, s.length() - 1);

此外,另一種刪除您不想要的字符的方法是使用.replace(oldCharacter, newCharacter)方法。

如:

s = s.replace(",","");

s = s.replace(".","");

您無法在Java中修改String。 他們是不變的。 您所能做的就是創建一個新字符串,它是舊字符串的子字符串,減去最后一個字符。

在某些情況下,StringBuffer可能會幫助您。

Mark Byers解釋說,最好的方法是:

s = s.substring(0, s.length() - 1)

例如,如果我們想用ReplaceAll替換\\“space”,它就不能正常工作

String.replaceAll("\\", "");

要么

String.replaceAll("\\$", "");   //if it is a path

請注意,單詞邊界也取決於區域設置。 我認為使用標准java.text.BreakIterator進行此操作的最佳方法。 以下是java.sun.com教程中的示例。

import java.text.BreakIterator;
import java.util.Locale;

public static void main(String[] args) {
    String text = "\n" +
            "\n" +
            "For example I'm extracting a text String from a text file and I need those words to form an array. However, when I do all that some words end with comma (,) or a full stop (.) or even have brackets attached to them (which is all perfectly normal).\n" +
            "\n" +
            "What I want to do is to get rid of those characters. I've been trying to do that using those predefined String methods in Java but I just can't get around it.\n" +
            "\n" +
            "Every help appreciated. Thanx";
    BreakIterator wordIterator = BreakIterator.getWordInstance(Locale.getDefault());
    extractWords(text, wordIterator);
}

static void extractWords(String target, BreakIterator wordIterator) {
    wordIterator.setText(target);
    int start = wordIterator.first();
    int end = wordIterator.next();

    while (end != BreakIterator.DONE) {
        String word = target.substring(start, end);
        if (Character.isLetterOrDigit(word.charAt(0))) {
            System.out.println(word);
        }
        start = end;
        end = wordIterator.next();
    }
}

資料來源: http//java.sun.com/docs/books/tutorial/i18n/text/word.html

您可以使用replaceAll()方法:

String.replaceAll(",", "");
String.replaceAll("\\.", "");
String.replaceAll("\\(", "");

等等..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM