nowcoder要和朋友交流一些敏感的信息,例如他的电话号码等。因此他要对这些敏感信息进行混淆,比如在数字中间掺入一些额外的符号,让它看起来像一堆乱码。
现在请你帮忙开发一款程序,解析从nowcoder那儿接收到的信息,读取出中间有用的信息。
输入有多行。
每一行有一段经过加密的信息(其中可能包含空格),并且原始信息长度不确定。
输出每段信息中数字信息。
$Ts!47&*s456 a23* +B9k
47456239
// write your code here import java.util.*; import java.io.*;public class Main{ public static void main(String[] args)throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String str=null; while((str=br.readLine())!=null){ for(int i=0;i<str.length();i++){ if(str.charAt(i)>='0' && str.charAt(i)<='9') System.out.print(str.charAt(i)); } System.out.println(); } } }
import java.util.*; public class Main{ public static void main(String[] args){ Scanner scanner=new Scanner(System.in); while(scanner.hasNext()){ String number=scanner.nextLine(); String result=""; for(int i=0;i<number.length();i++){ if(number.charAt(i)>='0'&&number.charAt(i)<='9'){ result+=number.charAt(i); } } System.out.println(result); } } }
#include<iostream> #include<vector> #include<string> #include<algorithm> #include<functional> #include <map> #include <set> #include <unordered_set> #include <unordered_map> #include <exception> #include <iomanip> #include <memory> #include <sstream> #define INF 1000000 using namespace std; int main(int argc, char** argv) { //freopen("in.txt", "r", stdin); char c; while ((c = getchar()) != EOF) { ostringstream os; if (isdigit(c)) os << c; while ((c = getchar()) != '\n' && c != EOF) if (isdigit(c)) os << c; cout << os.str() << endl; } return 0; }
import java.util.*; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String str = sc.nextLine(); for(int i = 0;i < str.length();i++){ if(str.charAt(i) >= '0' && str.charAt(i) <= '9'){ System.out.print(str.charAt(i)); } } System.out.println(); } } }
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String str = sc.nextLine(); StringBuilder sb = new StringBuilder(); for(int i = 0; i < str.length(); i++){ if(str.charAt(i) >= '0' && str.charAt(i) <= '9'){ sb.append(str.charAt(i)); } } System.out.println(sb); } } }
import java.util.*; public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); while (scan.hasNext()){ String str = scan.nextLine(); for (int i = 0; i < str.length(); i++){ if (str.charAt(i) >= '0' && str.charAt(i) <= '9'){ System.out.print(str.charAt(i)); } } System.out.println(); } } }
只能用比较笨的方法:先找出符合的字符,其次填入动态数组中最后输出结果
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
String str=scan.nextLine();
int j=0;
StringBuffer stb=new StringBuffer();
for(int i=0;i<str.length();i++){
if(str.charAt(i)>='0'&&str.charAt(i)<='9'){
stb.insert(j++, str.charAt(i));
}
}
System.out.println(stb.toString());
}
scan.close();
}
}
// write your code here cpp #include<iostream> #include<string.h> #include<stdio.h> #include<cstdio> using namespace std; int main(){ string s; while(getline(cin,s)){ int len=s.length(); for(int i=0;i<len;i++){ if(s[i]>='0'&&s[i]<='9') cout<<s[i]; } cout<<endl; } return 0; }这么简单的题居然还调试了半天,起始一开始就写出来了,只不过判断函数写错了,0到9我没包含0和9,居然犯了这么简单的错误。。。。这道题 getline(cin,s),会用就迎刃而解了