首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

小疑点,请大大解答

2012-02-03 
小问题,请大大解答public class Test1 {public static void main(String[] args) {String str1234+23545

小问题,请大大解答
public class Test1 {
 public static void main(String[] args) {
  String str="1234+23545+244252+3435";
  for(int i=0;i<str.length();i++){
  if(str.charAt(i)>'0'||str.charAt(i)<'9'){
  System.out.print(str.charAt(i)+"");
  }  
  }
}
为什么还有运算符输出哦? 

 


[解决办法]
charAt 方法返回一个字符值,该字符位于指定索引位置。字符串中的第一个字符的索引为0,第二个的索引为1
,而你的理解是他返回一个ansic码,其实他不返回的,你可以自己试一下看看+返回的值是多少,就是说你这个程序根本就没有过滤+,当然要输出了,

Java code
 if(!str.charAt(i).equals("+")){     System.out.print(str.charAt(i)+"");    }
[解决办法]

LS的str.charAt(i)返回的是个char值,“+”是个字符串 怎么可以用char.equals(String);??
[解决办法]
To 1楼的:
if(!str.charAt(i).equals("+")){ 
System.out.print(str.charAt(i)+""); 

-----------------------
-----------------------
str.charAt(i)返回的是个char值,不能用上面的方法,应该用这个吧
if(str.charAt(i)!='+'){ 
   System.out.print(str.charAt(i)+""); 
}
[解决办法]
支持楼上的发言
[解决办法]
在赋值时你就有运算符啊!
[解决办法]
应该是这样的不?
import java.io.*;
public class Test1 { 
 public static void main(String[] args) { 
String str="1234+23545+244252+3435"; 
for(int i=0;i <str.length();i++){ 
if(str.charAt(i) > '0' && str.charAt(i) < '9'){ 
System.out.print(str.charAt(i)+""); 
}
}

}
结果:123423545244252345
[解决办法]

Java code
有必要怎么麻烦吗?不就是提取数字吗?Java是OOP的别拿C和C++中的什么字符来判断好不,个人认为~public class Test1 {    public static void main(String[] args) {       String str="1234+23545+244252+3435";        String[] num = str.split("\\W");      for(String s : num){           System.out.print(s);      }      System.out.println();   }   } output:123423545244252345
[解决办法]
学习了!!!!

热点排行