我已经找到类似的主题,但它们并没有真正帮助。
我基本上需要知道如何在字符串末尾删除空格。
例如:String a = "Good Morning it is a nice day ";
应该是:String a = "Good Morning it is a nice day";
你看到最后有三个空格或者其他东西。我得到了replaceAll()作为一个建议,但正如我所说,我只想在最后删除剩余的空格。我怎么做 ?我已经尝试了不同的东西,比如像这样经历String:
for(int i = a.length(); i > a.length() - 3; i++){
if(a.charAt(i) == ' '){
<insert Solution here>
}
}
使用上面的代码我想检查字符串的最后三个字符,因为它已经足够了。这对我想要的东西来说已经足够了。最后(可能)不会有99+个空格。
但是如你所见,我仍然不知道使用哪种方法或者这实际上是正确的方法。
有什么建议吗?
答案 0 :(得分:5)
您可以使用正则表达式:
a = a.replaceAll("\\s+$", "");
删除尾随空格并将结果存储回a
或使用for循环:
String a = "Good Morning it is a nice day ";
StringBuilder temp = new StringBuilder(a);
for( int i = temp.length() - 1 ; i >= 0; i--){
if(temp.charAt(i) == ' '){
temp.deleteCharAt(i);
}else{
break;
}
}
a = temp.toString();
答案 1 :(得分:2)
如果您的目标是仅剪切尾随空格字符并保存字符串的前导空白字符,则可以使用public static List<Path> listFiles(String rootDirectory)
{
List<Path> files = new ArrayList<>();
listFiles(rootDirectory, files);
return files;
}
private static void listFiles(String path, List<Path> collectedFiles)
{
File root = new File(path);
File[] files = root.listFiles();
if (files == null)
{
return;
}
for (File file : files)
{
if (file.isDirectory())
{
listFiles(file.getAbsolutePath(), collectedFiles);
} else
{
collectedFiles.add(file.toPath());
}
}
}
类“String
方法:
replaceFirst()
String yourString = " my text. ";
String cutTrailingWhiteSpaceCharacters = yourString.replaceFirst("\\s++$", "");
- 一个或多个空格字符(使用占用量词(在Java API文档中查看\\s++
类),列出了regułar表达式中使用的所有特殊字符)),
Pattern
- 字符串结尾
您可能还想在编辑之前查看我的部分答案:
如果您不关心输入字符串的前导空格字符:
$
类提供String
方法。它可能是您的情况下的快速解决方案,因为它会削减给定String的前导和尾随空格。
答案 2 :(得分:1)
void movement(int a[],int n)
{
int i,k;
for(k=0;k<n && a[k]==0;k++);
for(i=n-1;i>k;i--)
{
if(a[i]==0)
{
a[i]=a[k];
a[k++]=0;
}
}
}
答案 3 :(得分:0)
int counter = 0;
String newWord = "";
for(int i = 0; i < word.length(); i++){
if (word.charAt(i) == " "){
counter++;
}
else {
counter = 0;
}
if (counter > 1){
newWord = word.substring(0, i);
break;
}
else {
newWord = word;
}
}
解决方案看起来像这样。