2011-12-13 29 views
-1

我正在格式化一个String,它使用NumberFormat实例在JTextField中输入而不指定位置。因此,我有一个字符串表示一个数字格式的空格作为分隔符。当我想为其他进程使用字符串时,我有一个摆脱空白的问题。我尝试过string.replaceAll(" ", "");string.replaceAll("\\s", "");,但它们都不起作用。使用NumberFormat的字符串格式

String string = ((JTextField)c).getText(); 
string = string.replaceAll("\\s", ""); 

而且当我这样做int index = string.indexOf(" ");int index = string.indexOf("\\s");返回-1,这意味着它没有找到的字符。 当我做

for(Character ch : string.toCharArray()) { 
System.out.println("ch : " + ch.isSpaceChar(ch)) 
} 

它空字符返回true。在java中如何表示一个空格字符?

我想也

StringBuilder b = new StringBuilder(((JTextField)c).getText()); 
String string = b.toString.replaceAll("\\s", ""); 
System.out.println("string : " + string); 

它不会取代的事情。

+1

请发布代码的一小段工作部分,以说明您的问题。 – mcfinnigan

+2

您是否将原始字符串设置为您要调用的replaceAll函数的返回值?然后,您是否正在使用replaceAll函数的新值更新消耗该值的任何内容? –

回答

5

你试过string = string.replaceAll(" ", "");? - 字符串是不可变的。

+0

是的,这是我如何做到这一点。 – xtrem06

0
String string = "89774lf&933 k880990"; 

string = string.replaceAll("[^\\d]", ""); 

System.out.println(string); 

OUTPUT:

89774933880990 

它会消除所有的char以外digits

+0

这就是我正在做的。代码更新中的 – xtrem06

+0

尝试另一个,并检查它是否正在工作。 –

+1

感谢您的代码,但我想了解为什么replaceAll方法不起作用,然后修复它,而不是自己做一个解析器。 – xtrem06