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

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

如何清理和打印 \d{3} \d{3} \d{2} \d{2} 格式的數字

如何清理和打印 \d{3} \d{3} \d{2} \d{2} 格式的數字

慕容森 2022-09-28 15:29:07
使用正則表達式,我需要格式化一個字符串,其中包含數字,字母a-z和A-Z,同時還包含破折號和空格。從用戶輸入我有02-219 8 53 24輸出應為022 198 53 24我正在使用正則表達式[^A-Za-z0-9\\s.]和爪哇String abc = "02-219 8 53 24"; String hello = abc.replaceAll("[^A-Za-z0-9\\s.]", " "); System.out.println(hello.replaceAll("(\\S\\d{3})", ""));導致02 219 8 53 24
查看完整描述

2 回答

?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

您可以使用

.replaceAll("\\D+", "").replaceFirst("^(\\d{3})(\\d{3})(\\d{2})(\\d{2})$", "$1 $2 $3 $4")

該部分刪除所有非數字字符(因此,有問題的字符串變為 ),第二部分將數字拆分為組并在它們之間插入空格。請參閱此步驟 2 的正則表達式演示.replaceAll("\\D+", "")0221985324replaceFirst("^(\\d{3})(\\d{3})(\\d{2})(\\d{2})$", "$1 $2 $3 $4")

爪哇演示

String abc = "02-219 8 53 24";

String hello = abc.replaceAll("\\D+", "");

System.out.println(hello.replaceFirst("^(\\d{3})(\\d{3})(\\d{2})(\\d{2})$", "$1 $2 $3 $4"));

// => 022 198 53 24


查看完整回答
反對 回復 2022-09-28
?
心有法竹

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

您可以使用正則表達式通過刪除非數字字符,但不需要它來格式化輸出字符串。為此,您可以直接使用字符串格式()方法或 printf()\D


String input = "02-219 8 53 24";

Object[] charObjectArray = 

    input.replaceAll("\\D", "").chars().mapToObj(c -> (char)c).toArray(Character[]::new);

if(charObjectArray.length>=10)

    System.out.printf("%c%c%c %c%c%c %c%c %c%c%n", charObjectArray);

else

    System.out.println("Invalid input string");

輸出:


022 198 53 24


查看完整回答
反對 回復 2022-09-28
  • 2 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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