即时通讯试图使代码删除文本的空格。我已经在Mac上对此进行了编程,以得到所需的结果,但是在Windows上运行相同的代码时,它将空字符(Ascii代码0)打印为空白。
声明:“ MetodosComunes.leerTextoPorTeclado()”使用户引入一个字符串,并将其分配给变量“ textoPuro”。
public static void main(String[] args) {
String textoPuro;
char espacio = ' ';
System.out.println("Introduzca una frase: ");
textoPuro = MetodosComunes.leerTextoPorTeclado();
char[] contenido = new char[textoPuro.length()];
for (int i = 0; i < textoPuro.length(); i++) {
contenido[i] = textoPuro.charAt(i);
if (contenido[i] == espacio) {
contenido[i] = 0;
}
System.out.print(contenido[i]);
}
}
如果我输入“你好吗” ...
在Mac OS上的结果:“ Howareyou”
Windows上的结果:“你好吗”
在Windows中,它实际上进入条件中,并将空字符分配给该元素,但它始终是空白。
最佳答案
而不是插入0
,您应该完全跳过字符:
int k = 0;
for (int i = 0; i < textoPuro.length(); i++) {
char c = textoPuro.charAt(i);
if (c != espacio) {
contenido[k++] = c;
}
}
System.out.println(String.valueOf(contenido, 0, k));
这只会将非空格字符放入数组中。