我想要一個動態代碼,它將在開始時修剪字串的某些部分,最后修剪部分。我能夠修剪最后一部分,但無法將字串的初始部分完全修剪到特定點。輸出中僅洗掉第一個字符。
public static String removeTextAndLastBracketFromString(String string) {
StringBuilder str = new StringBuilder(string);
int i=0;
do {
str.deleteCharAt(i);
i ;
} while(string.equals("("));
str.deleteCharAt(string.length() - 2);
return str.toString();
}
這是我的代碼。Awaiting Research(5056)當我作為引數傳遞時,給出的輸出是waiting Research(5056. 我想修剪此類字串的初始部分,直到 ( 并且我只想要數字作為我的輸出。我的預期輸出是 - 5056。請幫忙。
uj5u.com熱心網友回復:
如果您的目標只是查看字串的一個數值,請嘗試使用正則運算式將字串拆分為相應的數值,然后將數字與字串分開,例如:
Pattern pattern = Pattern.compile("\\d ");
Matcher matcher = pattern.matcher("somestringwithnumberlike123");
if(matcher.find()) {
System.out.println(matcher.group());
}
uj5u.com熱心網友回復:
您不需要回圈(在您的代碼中),您可以String.substring(int, int)結合使用String.indexOf(char):
public static void main(String[] args) {
// example input
String input = "Awaiting Research(5056)";
// find the braces and use their indexes to get the content
String output = input.substring(
input.indexOf('(') 1, // index is exclusive, so add 1
input.indexOf(')')
);
// print the result
System.out.println(output);
}
輸出:
5056
暗示:
僅當您確定輸入將始終包含 a(和 a )withindexOf('(') < indexOf(')')或處理IndexOutOfBoundsExceptions 時才使用此選項,這將發生在大多數String不匹配大括號約束的 s 上。
uj5u.com熱心網友回復:
使用正則運算式來提取您需要的內容是一個更好的選擇:
String test = "Awaiting Research(5056)";
Pattern p = Pattern.compile("([0-9] )");
Matcher m = p.matcher(test);
if (m.find()) {
System.out.println(m.group());
}
uj5u.com熱心網友回復:
對于您的情況,電池使用正則運算式來提取您感興趣的部分。
Pattern pattern = Pattern.compile("(?<=\\().*(?=\\))");
Matcher matcher = pattern.matcher("Awaiting Research(5056)");
if(matcher.find())
{
return matcher.group();
}
uj5u.com熱心網友回復:
解決問題要容易得多,例如使用String.indexOf(..)and String.substring(from,to)。但是,如果出于某種原因你想堅持你的方法,這里有一些提示:
您的代碼執行的操作是因為:
string.equals("(")僅當給定字串恰好為“(”時才為真- 如果條件不成立,
do {code} while (condition)-loop 會執行一次代碼 -> 考慮改用while (condition) {code}回圈 - 如果您更改條件以檢查 i 處的字符,您的代碼將洗掉第一個、第三個、第五個等:第一次執行后 i 為 1,而 i 處的 char 現在是原始字串的第三個字符(因為第一個已被洗掉)-> 考慮始終檢查和洗掉 charAt 0。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/484436.html
標籤:爪哇
