如何计算字符串中的空格数
How to calculate the number of whitespaces in a String
我正在尝试通过 .trim()
方法删除字符串开头的空格。但是当我尝试计算我删除的空格数时,它不起作用。我试过做一个等式:
int spaces = line.length() - line.trim().length()
。但出于某种原因,它总是最终说出正在输入的行的长度。我在这里错过了什么吗?还是我代码的其他部分?
public Squeeze(FileInput inFile, FileOutput outFile)
{
int spaces = 0;
String line = "";
while(inFile.hasMoreLines())
{
line = inFile.readLine();
line = line.trim();
spaces = line.length() - line.trim().length();
outFile.println(spaces + line);
}
outFile.close();
}
注意:OP 的代码实际上并不计算所有空格,只计算前导空格。对于那些想要直接回答问题的人:
如果你有公地:
int count = StringUtils.countMatches(yourText, " ");
如果你不这样做:
int count = yourText.length() - yourText.replace(" ", "").length();
以下解决方案仅基于 OP 的代码。
您的问题在这部分:
line = line.trim();
// At this point, 'line' has already been trimmed.
spaces = line.length() - line.trim().length();
您需要将修剪后的版本放入其他变量,或者移动 line = line.trim()
行,直到至少 在 计算完空格后。
public Squeeze(FileInput inFile, FileOutput outFile)
{
int spaces = 0;
String line = "";
String trimmedLine = "";
while(inFile.hasMoreLines())
{
line = inFile.readLine();
trimmedLine = line.trim();
spaces = line.length() - trimmedLine.length();
outFile.println(Format.left(spaces, 4) + line);
}
outFile.close();
}
我正在尝试通过 .trim()
方法删除字符串开头的空格。但是当我尝试计算我删除的空格数时,它不起作用。我试过做一个等式:
int spaces = line.length() - line.trim().length()
。但出于某种原因,它总是最终说出正在输入的行的长度。我在这里错过了什么吗?还是我代码的其他部分?
public Squeeze(FileInput inFile, FileOutput outFile)
{
int spaces = 0;
String line = "";
while(inFile.hasMoreLines())
{
line = inFile.readLine();
line = line.trim();
spaces = line.length() - line.trim().length();
outFile.println(spaces + line);
}
outFile.close();
}
注意:OP 的代码实际上并不计算所有空格,只计算前导空格。对于那些想要直接回答问题的人:
如果你有公地:
int count = StringUtils.countMatches(yourText, " ");
如果你不这样做:
int count = yourText.length() - yourText.replace(" ", "").length();
以下解决方案仅基于 OP 的代码。
您的问题在这部分:
line = line.trim();
// At this point, 'line' has already been trimmed.
spaces = line.length() - line.trim().length();
您需要将修剪后的版本放入其他变量,或者移动 line = line.trim()
行,直到至少 在 计算完空格后。
public Squeeze(FileInput inFile, FileOutput outFile)
{
int spaces = 0;
String line = "";
String trimmedLine = "";
while(inFile.hasMoreLines())
{
line = inFile.readLine();
trimmedLine = line.trim();
spaces = line.length() - trimmedLine.length();
outFile.println(Format.left(spaces, 4) + line);
}
outFile.close();
}