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),会用就迎刃而解了