去除空格,可以一个一个判断,是空格则删除;也可以用split("
"),用空格来分割字符串,然后把分割后的字符串码羡再拼接起来,不过我不确定这种方法在分割后的数组中会不会迟枣拍还有空格。。。
计算汉字个数,好像是用正则表达式匹配,还是编码值之类的。可能是用正则表达式时,就是利用了编码值。这个应该可以搜到的。
我当时用的就是这样方法,没有找到更好岩春的方法了。
比如:
java Test a b
Test程序会收到两个参数"a"和"b",如果想要让它收到"a b",命令行可以改成
java Test "a b"
如果你不能编辑java运行的命令行,又很肯定你的程序只应该接收1个参雀返迹数,可以在你的程序中进行处理:
if(args != null args.length0){
StringBuffer paramBuf = new StringBuffer(args[0]);
for(int i=1; iargs.length; ++i){
paramBuf.append(' ').append(args[i]);
}
String param = paramBuf.toString();
System.out.println(param);
}else{
System.out.println("please input filepath !");
}
回答补充顷并:
请楼主尽可能采用我一开始提到的方法,这是最标准的。
如果你运行java的命令行是
java Test a b
JVM(即java.exe)得到的参数已经是
"Test"、"a"、"b"
即参数的分割不是JVM做的事情,是操作系统做的事情。JVM得到的参数已经是分割好了的,本身无能为力(也就是说,你无法通过给java命令行添加一些编译选项,使JVM将类名后面的字世启符串理解为一个整体的参数,因为JVM在得到这些参数时,已经被操作系统分割好了)。
而Windows的命令行,使用空白字符做分隔符,这一点没有办法更改(如果整个Windows系统的命令行分隔符所采用的字符被更改,恐怕大部分程序都不能正常运行了)。
String str1 = "Hello — — world"燃销;
String str2 = str1.replace("槐嫌 ", "");
System.out.println(str2);
这样是把字符串中的空格替换成空的 就是相当于去掉了字符串中所有的空格
试下铅段手效果
java删除字符串的空格:
1、删除字符串前后的空格,使用字符串碧态提供的方法trim()去除;例:String s=" aa "; s=s.trim(); s="aa";
2、删除字符串前后的空格,使用字符串提供的方法replace()替换掉空格,该方悔好源法有两个参数,参数一表示你要替换的目标字符袜蠢串,参数二表示你要把目标字符串替换成什么字符串;例:String s=" a a "; s=s.replace(" ",""); s="aa";我们把目标字符串空格,替换成空字符,就实现了去除空格
自己写一个方法,使用split()去除角空格以及全基坦橡角空格!~ split()返回是String[],后再组搏旁合成一个String
public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。
例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果:
Regex 结果
: { "信贺boo", "and", "foo" }
o { "b", "", ":and:f" }
参数:
regex - 定界正则表达式
返回:
字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的,,
根据你的要求重新编写了以个程式,测试OK,
代码如下:
class StrTest{
static String stringTest(String s){
int j=0,k=0,i=0;
char[] stra=new char[s.length()];
s.getChars(0,s.length(),stra,0);
for(i=0;is.length();i++){
if(stra[i]==' '||stra[i]==' '){
j=i+1;
}
else
{
break;
}
}
for(i=s.length()-1;i+10;i--){
if(stra[i]==' '||stra[i]==' '){
k=i;
}
else{
break;
}
}
String strb=new String(stra,j,k-j);
return strb;
}
public static void main(String[] args){
String str=new String(" a test test ");
System.out.println(stringTest(str));
}
}
你可以更改 String str=new String(" a test test "); 来测试
java中String有个trim()能够去掉一个字符串的前后空格。
但是trim()只能去掉字符串中前后的半角空格,而无法去掉全角空格。
去掉全角空格需要在trim()方法的基础上加上一些判断。
String textContent ="abctest ";
textContent = textContent.trim();
while (textContent.startsWith(" ")) {//这里判断是不御脊拆是全角空镇枣格
textContent = textContent.substring(1, textContent.length()).trim();
}
while (textContent.endsWith("野磨 ")) {
textContent = textContent.substring(0, textContent.length() - 1).trim();
}