我有一個String
類似如下:如何插入逗號成若干中的其他詞的字符串
"The answer is 1000"
我想插入逗號到數1000不破壞String
的其餘部分。
注意:我也希望將其用於不同長度的其他String
s,因此不建議使用substring(int index)
獲取該號碼。
我能想到的最好方法是使用regex
命令,但我不知道如何。
在此先感謝!
我有一個String
類似如下:如何插入逗號成若干中的其他詞的字符串
"The answer is 1000"
我想插入逗號到數1000不破壞String
的其餘部分。
注意:我也希望將其用於不同長度的其他String
s,因此不建議使用substring(int index)
獲取該號碼。
我能想到的最好方法是使用regex
命令,但我不知道如何。
在此先感謝!
以下格式的所有非十進制數字:
public String formatNumbers(String input) {
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(input);
NumberFormat nf = NumberFormat.getInstance();
StringBuffer sb = new StringBuffer();
while(m.find()) {
String g = m.group();
m.appendReplacement(sb, nf.format(Double.parseDouble(g)));
}
return m.appendTail(sb).toString();
}
eg如果您致電:formatNumbers("The answer is 1000 1000000")
結果是:"The answer is 1,000 1,000,000"
你可以使用正則表達式:
[0-9]+
爲了找到相鄰的臺位,所以它會匹配1000
,或7500
或22387234
,等等。你可以在此http://regexpal.com/不處理這個測試涉及小數點的數字的情況,BTW。
這是不是一個完整的,具有代碼的回答,但基本算法如下:
0
(這將防止從300
正在變成,300
從Most efficient way to extract all the (natural) numbers from a string修改:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Example {
private static final String REGEX = "\\d+";
public static void main(String[] args) {
String input = "dog dog 1342 dog doggie 2321 dogg";
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(input); // get a matcher object
int end = 0;
String result = "";
while (m.find()) {
result = result + input.substring(end, m.start());
result = result
+ addCommas(
input.substring(
m.start(), m.end()));
end = m.end();
}
System.out.println(result);
}
private static String addCommas(String s) {
char[] c = s.toCharArray();
String result = "";
for (int i = 0; i < s.length(); i++) {
if (s.length() % 3 == i % 3)
result += ",";
result += c[i];
}
return result;
}
}
與βнɛƨнǤʋяʋиɢ的帖子一樣,這對於沒有數字的字符串不起作用。 。 – Confiqure 2012-01-09 12:21:26
給我們更多的信息。它總是1000?還是4位數字?或者它可以是更長的數字?每千分之一是逗號嗎? (在提問時,這是供將來參考的......給出明確的信息,以便我們可以回答你) – 2012-01-09 02:09:58
只有一個數字在短語中? – 2012-01-09 02:10:30
使用http://stackoverflow.com/questions/1558432/extracting-a-number-from-a-string-in-java? – 2012-01-09 02:13:08