我有:
String word = "It cost me 500 box
我想要做的是这样显示这句话:
It cost me
500 box
我需要一个通用的方法,不仅仅是这个例子。 你能帮助我吗?
答案 0 :(得分:2)
根据建议你可以使用正则表达式来完成这项工作,下面是一个代码片段,可以帮你解决问题:
String word = "It cost me 500 box";
Pattern p = Pattern.compile("(.* )([0-9].*)");
Matcher m = p.matcher(word);
if(m.matches()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
}
希望这有帮助。
答案 1 :(得分:1)
不是最佳方式,而是一种简单方法:
在您的活动之上:
String finalText="";
public static boolean isNumber(String string)
{
try
{
double d = Double.parseDouble(string);
}
catch(NumberFormatException e)
{
return false;
}
return true;
}
在您的代码中:
String word = "It cost me 500 box";
for (int i=0 ; i<word.length() ; i++){
String a = Character.toString(word.charAt(i));
if (isNumber(a)){
finalText+="\n";
for (int j=i ; j<word.length() ; j++){
String b = Character.toString(word.charAt(j));
finalText+=b;
}
i = word.length();
}
else{
finalText+=a;
}
}
textView.setText(finalText);
答案 2 :(得分:0)
我不知道是否还有我所知道的内置功能,但这样做的一种方法是:
void match(String string) {
int numIndex = -1;
int charIndex = 0;
if (string.length() > 0) {
while (numIndex == -1 && charIndex < string.length()) {
if (Character.isDigit(string.charAt(charIndex)))
numIndex = charIndex;
charIndex++;
}
}
if (numIndex != -1) {
System.out.println(string.substring(0, numIndex));
System.out.println(string.substring(numIndex));
}
}