您好我正在尝试为我的文本域添加空间格式(我使用JFoenix)我的目标是将100000
写为10 00 00
并将1000000
写为1 00 00 00
这是我的尝试,但我的结果是相反的,因为插入符号正在失去位置。
public static void setup(JFXTextField textField) {
textField.setOnKeyReleased(value->{
String entredText = textField.getText();
String noSpaced = entredText.replaceAll("\\s+","");
StringBuilder builder = new StringBuilder();
for (int i = 0; i < noSpaced.length(); i++) {
builder.append(noSpaced.charAt(i));
if (i%2==0) {
builder.append(" ");
}
}
textField.setText(builder.toString());
});
}
用于测试我在这里面临的问题是:大量空间和写作是相反的
感谢Armel Sahamene回答我们已经修复了间距问题,但没有解决间隔问题
123456应该是12 34 56但结果是65 43 21
感谢
答案 0 :(得分:1)
您的格式取决于noSpaced字符串的长度。所以修复你的if条件:
public static void setup(JFXTextField textField) {
textField.setOnKeyReleased(value->{
String entredText = textField.getText();
String noSpaced = entredText.replaceAll("\\s+","");
StringBuilder builder = new StringBuilder();
for (int i = 0; i < noSpaced.length(); i++) {
builder.append(noSpaced.charAt(i));
if ((i % 2 == 0 && noSpaced.length() % 2 == 1) || (i % 2 == 1 && noSpaced.length() % 2 == 0)) {
builder.append(" ");
}
}
textField.setText(builder.toString());
});
}
答案 1 :(得分:1)