亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從字符串中刪除包含特定單詞或部分單詞的單詞

從字符串中刪除包含特定單詞或部分單詞的單詞

哈士奇WWW 2023-05-24 16:04:14
我有一個字符串,我想刪除其中包含特定單詞的特定單詞。例如: String str = "Create_DateTime, Hello, DateTime, Before" 每個包含單詞“Date”的單詞都應該被刪除,所以在刪除之后我們將得到以下字符串: Hello,Before我有這個字符串: Expected_Start_DateTime,Metrics_Count,Device_UID,Command_Name,Command_Interval,Start_DateTime,Instance_UID,Execution_Date,Metrics_Size_KB,End_DateTime,Tags_Countfrom command_execution我已經設法刪除了所有不需要的詞,所以現在我的字符串看起來像這樣: ,Metrics_Count,Device_UID,Command_Name,Command_Interval,,Instance_UID,,Metrics_Size_KB,,Tags_Countfrom command_execution我想刪除單詞前后的“,”這是我用來執行上述操作的代碼:String str1 = str.replaceAll("\\w*Date\\w*","");原始字符串: Expected_Start_DateTime,Metrics_Count,Device_UID,Command_Name,Command_Interval,Start_DateTime,Instance_UID,Execution_Date,Metrics_Size_KB,End_DateTime,Tags_Countfrom command_execution預期的:Metrics_Count,Device_UID,Command_Name,Command_Interval,,Instance_UID,Metrics_Size_KB,,Tags_Countfrom command_execution實際的: ,Metrics_Count,Device_UID,Command_Name,Command_Interval,,Instance_UID,,Metrics_Size_KB,,Tags_Countfrom command_execution
查看完整描述

3 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

一種方法是使用 java 流


String str = "Expected_Start_DateTime,Metrics_Count,Device_UID,Command_Name,Command_Interval,Start_DateTime,Instance_UID,Execution_Date,Metrics_Size_KB,End_DateTime,Tags_Countfrom command_execution";


String result = Stream.of(str.split(","))

                      .filter(word -> !word.contains("Date"))

                      .collect(Collectors.joining(","));


查看完整回答
反對 回復 2023-05-24
?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

如上所述,使用數組的方法.split()可能是更好的方法,但如果您對正則表達式感到好奇,可以使用以下幾種方法來實現您的目標。

\b\w*?[dD]ate\w*?\b- 這會選擇其中包含“日期”的任何單詞。

  • \b標簽指定一個單詞邊界 - 如果字符不是單詞字符(不是 ),\w它會中斷,并且還會在字符串的開頭和結尾處中斷,因此它也會捕獲字符串中的第一個和最后一個單詞.

  • \w標記指定一個“單詞”字符:a-z、A-Z0-9_。由于您的話中沒有任何奇怪的字符,因此效果很好!

  • *?根據需要匹配盡可能多的單詞字符,但盡可能少。 這確保它捕獲“日期”之前的所有字符,但只捕獲該詞所需的字符。

  • [dD]ate從字面上查找單詞dateor Date。

在這里試試吧!


^,*|,*$- 這會選擇要處理的前導和尾隨逗號。

  • ^,*- 將逗號錨定在字符串的前面,并盡可能多地獲取。

  • |或者...

  • ,*$- 獲得盡可能多的逗號,固定在字符串的后面。

在這里試試吧!


,{2,}- 這會選擇 2 個或更多逗號的所有實例,供您替換為單個逗號。

  • ,選擇一個逗號,只要...

  • {2,}它們之間有 2 到無限數量,彼此相鄰。

在這里試試吧!


祝你好運!


查看完整回答
反對 回復 2023-05-24
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

似乎您真正想做的是使用數組。(因為你似乎正在處理一個實際上是一堆字符串和逗號的字符串)。完成所需操作的一種方法是執行 str.split(","),然后循環檢查 strArray[i].contains("date")。讓我知道我是否應該更清楚



查看完整回答
反對 回復 2023-05-24
  • 3 回答
  • 0 關注
  • 227 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號