如何删除java中的所有空格
我有一个编程任务,它的一部分需要我做的代码,从用户读取一行,并删除该行内的所有空白。 该行可以由一个或多个字组成。
我试图用这个程序做的是让它分析每个字符,直到find一个空格,然后将该子string保存为第一个标记。 然后再次循环,直到它没有更多的标记或行结束。
当我尝试编译它时,我一直在得到这个:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1 at java.lang.String.charAt(String.java:694) at trim.main(trim.java:23)
这是代码
import java.util.Scanner ; import java.lang.Character; import java.lang.String ; public class trim { public static void main (String[]args) { String a ; String b ; String c ; char aChar ; int i = 0 ; Scanner scan = new Scanner(System.in); a = scan.nextLine(); a =a.trim() ; for ( ; i >= 0 ; i++ ) { aChar = a.charAt(i) ; if (aChar != 32) { a = a.substring(0,i+1); } else { b = a.substring(i,160) ; b= b.trim(); c = c + a ; c = c.trim() ; a = b ; i = 0 ; } if (b.equals(null)) { i = -1 ; } } } }
更容易的方法是赞赏,但我仍然希望得到这个程序的工作。
而且我不能在input中使用哨兵。
谢谢大家的帮助,
我将使用更简单的方法,并阅读javadoc。
java.lang.String
类的方法substring
不是substr
,那就是程序中的错误。
此外,如果你使用正则expression式,你可以在一行中做到这一点。
a.replaceAll("\\s+","");
为什么不使用正则expression式呢?
a = a.replaceAll("\\s","");
在正则expression式的上下文中, \s
将删除任何空格字符(包括空格,制表符等)。 你需要在Java中使用反斜杠,这样正则expression式才会变成\\s
。 而且, 由于string是不可变的,因此将正则expression式的返回值赋给a是很重要 a
。
将string中的所有空格replace为空字符。
String lineWithoutSpaces = line.replaceAll("\\s+","");
不使用literals
或regular expressions
的最直观的方法:
yourString.replaceAll(" ","");
尝试这个:
String str = "Your string with spaces"; str = str.replace(" " , "");
尝试:
string output = YourString.replaceAll("\\s","")
s – 表示空格字符(制表符等)
package com.infy.test; import java.util.Scanner ; import java.lang.String ; public class Test1 { public static void main (String[]args) { String a =null; Scanner scan = new Scanner(System.in); System.out.println("*********White Space Remover Program************\n"); System.out.println("Enter your string\n"); a = scan.nextLine(); System.out.println("Input String is :\n"+a); String b= a.replaceAll("\\s+",""); System.out.println("\nOutput String is :\n"+b); } }
public static String removeSpace(String s) { String withoutspaces = ""; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) != ' ') withoutspaces += s.charAt(i); } return withoutspaces; }
这是从string中删除空格的最简单和最直接的方法。
您可以使用正则expression式来删除空格,请尝试以下代码片段:
Scanner scan = new Scanner(System.in); System.out.println(scan.nextLine().replaceAll(" ", ""));
不能你只使用String.replace(“”,“”);
trim.java:30: cannot find symbol symbol : method substr(int,int) location: class java.lang.String b = a.substr(i,160) ;
在String类中没有像substr
这样的方法。
使用String.substring()方法。
String a="string with multi spaces "; //or this String b= a.replaceAll("\\s+"," "); String c= a.replace(" "," ").replace(" "," ").replace(" "," ").replace(" "," ").replace(" "," ");
//它可以很好地处理任何空格
*不要忘记刺痛的空间b
boolean flag = true; while(flag) { s = s.replaceAll(" ", ""); if (!s.contains(" ")) flag = false; } return s;
String a="string with multi spaces "; String b= a.replace(" "," ").replace(" "," ").replace(" "," ").replace(" "," ").replace(" "," ");
//它可以很好地处理任何空格