java有如下字符串,将其中的数字摘取出来组成一个int的数值输出
packagecom.langsin.diqizhang;publicclassZhaiqushuzi{publicvoidFangfa(){Stringstr=("12...
package com.langsin.diqizhang;
public class Zhaiqushuzi {
public void Fangfa(){
String str=("123fgjffff4gvg636ggjvfhc2jhgvfi97hg8760g7jf");
for(int i=0;i<str.length();i++){
for(int j=0;j<10;j++){
if(str.charAt(i)==j){
System.out.print(j);
}
}
}
}
public static void main(String[] args){
Zhaiqushuzi a=new Zhaiqushuzi();
a.Fangfa();
}
}
我if判断的那个地方错了吗? 展开
public class Zhaiqushuzi {
public void Fangfa(){
String str=("123fgjffff4gvg636ggjvfhc2jhgvfi97hg8760g7jf");
for(int i=0;i<str.length();i++){
for(int j=0;j<10;j++){
if(str.charAt(i)==j){
System.out.print(j);
}
}
}
}
public static void main(String[] args){
Zhaiqushuzi a=new Zhaiqushuzi();
a.Fangfa();
}
}
我if判断的那个地方错了吗? 展开
1个回答
展开全部
你的程序我帮你改完了,你看看吧.
package com.langsin.diqizhang;
public class Zhaiqushuzi {
public void Fangfa(){
String str="123fgjffff4gvg636ggjvfhc2jhgvfi97hg8760g7jf";
String temp="";
boolean first_Flag=true;
for(int i=0;i<str.length();i++){
if(str.charAt(i)>=48 && str.charAt(i)<=57){
temp=temp+str.charAt(i);
first_Flag=true;
}else{
if(first_Flag==true){
int n=Integer.parseInt(temp);
System.out.println(n);
temp="";
first_Flag=false;
}
}
}
}
public static void main(String[] args){
Zhaiqushuzi a=new Zhaiqushuzi();
a.Fangfa();
}
}
运行结果
123
4
636
2
97
8760
7
追问
好吧,考虑的比我要多,我本来只是要提出数字排成一行就好了,真的谢谢了,顺便请教大神,向我那样单纯的输出一个一个数字,怎样把他们一堆变成一个数字?
追答
象你说的,把if(str.charAt(i)==j)改成if(str.charAt(i)-'0'==j)其他的不变,就可以把他们一堆变成一个数字了.具体的程序如下
package com.langsin.diqizhang;
public class Zhaiqushuzi {
public void Fangfa(){
String str="123fgjffff4gvg636ggjvfhc2jhgvfi97hg8760g7jf";
for(int i=0;i<str.length();i++){
for(int j=0;j<10;j++){
if(str.charAt(i)-'0'==j){
System.out.print(j);
}
}
}
}
public static void main(String[] args){
Zhaiqushuzi a=new Zhaiqushuzi();
a.Fangfa();
}
}
运行结果
123463629787607
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询