난이도:(쉬움) 현우는 축구를보다가 우리나라선수들의몸값을 알고싶었다
그래서 검색을해서 메모장에 적는데 키보드가 조그만하고 안좋은지라
자꾸 숫자가아닌 문자를 같이입력해버린다
ex: xxx : 1627000000 > xxx : 1w627r00o00p00 만 (특수문자제외)
현우는 왜인지모르지만 뜻대로안되는것에
너무화가나서 자신이수량을입력하면 문자열만 딱빼서 숫자만 반환하는 코드를 만들고싶어한다
화가난 현우를위해 코드를 만들어보자!
128개의 풀이가 있습니다.
Python
import re
a = "1w627r00o00p0099 만"
p = re.compile('[0-9]')
print(*p.findall(a), sep="")
#Another solution
print(''.join([c for c in a if c.isdigit()]))
Swift입니다.
Range를 주고 ~= operator를 사용하면 주어진 값이 해당 Range에 속하는지 알려주네요.
print( readLine()!.filter({ ("0"..."9" ~= $0)}) )
결과는...
1코2딩3도4장
1234
inputStr = input("숫자를 입력하세요: ")
cleanNumber = ''
for i in range(len(inputStr)):
if '0' <= inputStr[i:i+1] <= '9' :
print(inputStr[i:i+1])
cleanNumber += inputStr[i:i+1]
print(cleanNumber)
using System;
namespace CD174
{
class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
Console.WriteLine(RemoveStrings(input));
}
static string RemoveStrings(string input)
{
string result = String.Empty;
foreach (var val in input)
{
if (Char.IsDigit(val)) { result += val.ToString(); }
}
return result;
}
}
}
public string GetRemoveString(string input)
{
string answer = string.Empty;
foreach (var element in input)
{
if (Char.IsPunctuation(element) || Char.IsDigit(element))
answer += element.ToString();
}
return answer;
}
import java.util.Scanner;
public class FilterTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String n = sc.nextLine();
String result="";
for(int i = 0 ; i < n.length(); i++) {
if('0' <= n.charAt(i) && n.charAt(i) <= '9') result=result+n.charAt(i);
}
System.out.println(result);
sc.close();
}
}
Array=list(filter(lambda x: x in list(map(str,range(0,10))),list(str,input()))) for i in range(len(Array)): print(Array[i],end='')
def delstring(string):
num = '0123456789'
result = ''
for i in string:
if i in num: result += i
return result
print(delstring('1w627r00o00p00'))
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("문자를 입력해주세요 : ");
String st = sc.nextLine();
StringBuffer tempSt = new StringBuffer();
for(int i = 0; i < st.length(); i++){
if(st.charAt(i) >= '0' && st.charAt(i) <= '9'){
tempSt.append(st.charAt(i));
}
}
System.out.println(tempSt);
}
}
JavaScript
var input = '1w627r00o00p00';
console.log(input.split('').filter(v => '0123456789'.indexOf(v) >= 0).join(''));
자바
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
String input = scan.nextLine(); //input변수 선언 및 입력받기
StringBuilder result = new StringBuilder(); //결과 변수 선언
for(int i =0; i < input.length(); i++) //input의 끝까지
{
//각 문자가 숫자이면?
if(input.charAt(i)>='0' && input.charAt(i) <= '9' )
result.append(input.charAt(i));
}
System.out.println(result); //결과 출력
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace Only_Number
{
class Program
{
static void Main(string[] args)
{
string strInput = Console.ReadLine();
string strNum = "";
strNum = Regex.Replace(strInput, @"\D", "");
Console.WriteLine(strNum);
}
}
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new FileReader("d:/in.txt"));
int lineCounter = 0;
while(true) {
String inputLine = bufferedReader.readLine();
StringBuffer outputLine = new StringBuffer();
if(inputLine==null) break;
System.out.println(lineCounter+" input : "+inputLine);
for(int i=0; i<inputLine.length(); i++) {
char character = inputLine.charAt(i);
if(character>48 && character<57) {
outputLine.append(character);
}
}
System.out.println(lineCounter+" output : "+outputLine.toString());
lineCounter++;
}
bufferedReader.close();
}
#include<stdio.h>
#include<string.h>
int main()
{
char ch[100];
int i;
int cn =0;
printf("문자열을 제거한 숫자만을 출력합니다. 입력 : ");
scanf("%s", ch);
char t_ch[strlen(ch)]={0, };
for(i=0; i<strlen(ch); i++)
{
if('0'<=ch[i] && ch[i]<='9')
{
t_ch[cn] = ch[i];
cn++;
}
}
printf("문자열 제거 후 출력 : ");
for(i=0; i<cn; i++)
{
printf("%c", t_ch[i]);
}
}
c#
static void Main(string[] args)
{
string input = "1w627r00o00p00";
string result = "";
foreach (var v in input)
{
if ('0' <= v && v <= '9')
result += v.ToString();
}
Console.WriteLine(result);
}
package test;
public class test {
public static void main(String[] args) {
String str = " 1w627r00o00p00";
System.out.println(str.replaceAll("[^0-9]", ""));
}
}
def get_number_only(input):
output = ""
for i in range(0, len(input)):
if '0' <= input[i] <= '9':
output = output + input[i]
return output
#tests
assert get_number_only('asdf23lkj')=='23'
assert get_number_only('23lkj')=='23'
assert get_number_only('asdf23')=='23'
assert get_number_only('as df 0 23')=='023'
input = input("input number and character : ")
output = get_number_only(input)
print(output)
// ===============================================
String st = "1w627r00o00p00";
st = st.replaceAll("[^0-9]", "");
System.out.println(st);
def input_digits():
a = input(input digits: )
b = ''
for i in a:
if i.isdigit():
b + i
del a
return b
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char num[20] = {'\n'};
printf("입력:");
scanf_s("%s", &num,sizeof(num));
char p[20] = { '\n' };
int len = strlen(num);
int k = 0;
for (int i = 0; i < len; i++)
{
if (num[i] >= '0' && num[i] <= '9')
{
p[k] = num[i];
k++;
}
}
for (int j = 0; j < len; j++)
{
printf("%c", p[j]);
}
return 0;
}
c언어
# number_only.py
inp = '1w627r00o00p00'
result = ''
for c in inp:
if c.isnumeric():
result = result + c
else:
pass
print(result)
출력 : 1627000000
def ReturnNumber(string):
res=''
for i in string:
if i.isdigit(): res+=i
return(res)
print(ReturnNumber(input()))
xxx = list(input())
def is_num(x):
for i in x:
if i.isdigit():
continue
else:
x.remove(i)
return ''.join(x)
print(is_num(xxx))
function sortNumber(input){
const arr = input.split('')
const result = arr.filter(item=>isNaN(Number(item)) === false )
return result.join('')
}
sortNumber('1w627r00o00p00')
namespace codingdojang_test
{
class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
for (int i = 0; i < input.Length; i++)
{
try
{
int.Parse(input.Substring(i, 1));
}
catch (FormatException)
{
continue;
}
Console.Write((int.Parse(input.Substring(i, 1))));
}
Console.WriteLine("");
}
}
}
N = input("입력하세요 : ")
import re
numsen = re.compile('[0-9]')
print(''.join(numsen.findall(N)))
파이썬입니다
static void Main(string[] args)
{
Console.WriteLine("*** 코딩도장 Q174 ***");
Console.Write("숫자만 출력할 문자열을 입력하세요 : ");
string userInput = Console.ReadLine();
string convertInput = "";
bool numOrChar = true;
int tmp = 0;
foreach (char i in userInput)
{
numOrChar = int.TryParse(i.ToString(),out tmp);
if (numOrChar)
{
convertInput = convertInput + i.ToString();
}
}
Console.WriteLine("입력한 문자열 : " + userInput);
Console.WriteLine("숫자만 출력 : {0}", convertInput);
}
비쥬얼스튜디오로 작성했습니다. 추천해주세요.
#include <stdio.h>
#include <iostream>
using namespace std;
void main() {
char array[20];
printf("문자열을 입력하세요 : ");
scanf("%s", array);
for (int i = 0; i < strlen(array); i++)
{
if (array[i] >= 48 && array[i] <= 57)
{
printf("%d", array[i] - 48);
}
}
}
s=input();ans=''
for i in s:
if ord(i)>=ord('0') and ord(i)<=ord('9'):
ans+=i
print(ans)
현우가 하루빨리 최신 자판으로 교체하기를 바랍니다.^^
Memo = input('>>>')
print(''.join(m for m in Memo if m.isalpha()==0))
#>>>1312321dkjsfalfk@
#1312321@
특수문자를 포함하기 위해서 isalpha()==0를 사용했습니다.
words = list(map(str, input().split()))
for w in str(words):
res = ''
if w.isdigit():
res = res.join(w)
print(res,end='')
n=input("현우야 입력해봐")
a=['1','2','3','4','5','6','7','8','9','0']
result=""
for i in n:
if i in a:
result=result+i
print(result)
strmix = input("input yout text: ")
result = []
sumnum = '1234567890'
for i in range(len(strmix)):
if strmix[i] in sumnum:
result.append(strmix[i])
else:
print(strmix[i])
finalresult = "".join(result)
print(finalresult)
number = "0123456789"
value = input("입력 : ")
result =""
for i in range(len(value)):
if value[i] in number:
result = result + value[i]
print(result)
Python 3.*
# Just return the numbers
import re
num = re.findall("[\d]", input("Input a player's salary : "))
s = ""
for i in num:
s += i
print(int(s))
import java.util.*;
public class 문자열을제거한뒤숫자만반환 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String line = scan.nextLine();
String[] line_list = line.split("");
ArrayList<String> list = new ArrayList<String>();
for(int i=0; i<line.length(); i++) {
int ascii = line.charAt(i);
if(ascii<58&&47<ascii) {
list.add(line_list[i]);
}
}
String[] numbers = list.toArray(new String[list.size()]);
String number = String.join("", numbers);
System.out.println(number);
}
}
import re
c = re.compile("\d+")
print("".join(c.findall(input("INPUT : "))))
결과
INPUT : 1w627r00o00p00
1627000000
평이한 방법으로 풀었습니다!
파이썬
print(''.join(i for i in input('숫자를 입력하세요.') if i.isdigit()))
정규식 배운지 얼만안되서 정규표현을 사용해서 어떻게 해볼려고했더니 여기저기서 막히고 줄도 길어졌는데 이건 정말 혁신적이네요;;;
파이썬3입니다. isdimit 과 isdecimal에 대해 공부할 수 있는 기회였네요. ㅎㅎ
print(''.join(i for i in input('문자를 입력하1시오: ') if i.isdecimal()))
string = "1w627r00o00p00"
result = []
int = ['1','2','3','4','5','6','7','8','9','0']
for i in string:
if i in int:
result.append(i)
print(result)
print(''.join(result))
N, Nintlist, Nint = list(input()), list(), ''
for i in range(len(N)):
try:Nintlist.append(int(N[i]))
except ValueError:pass
for i in range(len(Nintlist)):Nint += str(Nintlist[i])
print(Nint)
def str_to_int():
strings = input("문자열: ")
a = list(strings)
ints = []
chars = []
for i in range(0, len(strings)):
try:
b = strings[i]
int(b)
ints.append(b)
except:
chars.append(b)
i+=1
result = "".join(ints)
return result
inp = input()
string = 'abcdefghijklmnopqstruwxyz'
num = '0123456789'
result=''
for i in inp:
if i in num:
result+=i
print(result)
case = "1w627r00o00p00"
result = ""
for x in case:
try:
if int(x):
result += x
except ValueError:
continue
finally:
if x == '0':
result += x
print(result)
int nIndex = 0;
for(int i = 0 ; i < strlen(cSourceAr) ; i++)
{
if((cSourceAr[i] >= 48) && (cSourceAr[i] <= 57))
{
cNumbersAr[nIndex] = cSourceAr[i];
nIndex++;
}
}
num=[]
chr=[]
a=input(' 숫자문자 섞어써봐 : ')
for i in range(len(a)):
try:
if type(int(a[i]))==int:
num.append(a[i])
else:
num.append(a[i])
except:
chr.append(a[i])
print(''.join(chr))
print(''.join(num))
파이썬입니다.
s = input("input : ")
s_ = []
t = ""
for x in s:
try:
int(x)
t += str(x)
except ValueError:
pass
print(t)
import java.util.ArrayList;
import java.util.Scanner;
public class Q172 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Input : ");
String input = scan.nextLine();
byte[] temp = new byte[input.length()];
for(int i=0; i<input.length();i++) {
temp[i] = (byte)input.charAt(i);
}
ArrayList<Integer> output = new ArrayList<Integer>();
for(int i=0; i<temp.length; i++) {
if(temp[i] >47 && temp[i]<58) {
output.add(Integer.parseInt(String.valueOf((char)temp[i])));
}
}
System.out.print("Output : ");
for(int i=0; i<output.size(); i++) {
System.out.print(output.get(i));
}
scan.close();
}
}
아스키코드로 변환해서 숫자만 추려서 해봤습니다.
number = input("숫자를 입력해주세요 : ")
a = ""
for i in number:
if i.isdigit():
b = i
a += b
else:
pass
print(a)
이걸 풀면서 isdigit 이라는 함수를 처음 써봤네요!
package test;
import java.util.*;
public class Test{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
System.out.println(input.replaceAll("[a-zA-Z]", ""));
sc.close();
}
}
파이썬으로 작성하였습니다.
num = "0123456789"
empty_list = []
x = input("수량을 입력하시오:")
for string in x:
if string in num:
empty_list.append(string)
print("".join(empty_list))
using System.Text.RegularExpressions;
namespace _60일차_9월30일
{
class MainApp
{
static void Main(string[] args)
{
//ex: xxx : 1627000000 > xxx : 1w627r00o00p00 만 (특수문자제외)
Console.WriteLine("Input Number : ");
string Input = Console.ReadLine();
Input = Regex.Replace(Input, @"[^0-9]", "");
Console.WriteLine(Input);
}
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("xxx : ");
String number = scan.next();
String code = "";
char[] alph = number.toCharArray();
for(int i=0; i<alph.length; i++) {
if(alph[i]>='0' && alph[i]<='9') code = code + number.charAt(i);
}
System.out.println(code);
}
import re
class getNumbers:
def __init__(self):
self.result = 0
def treatString(self,text):
line = ""
p = re.compile(r"\d")
for i in text:
m = p.search(i)
if m:
line = line+i
self.result = int(line)
print (self.result)
a = getNumbers()
a.treatString("1w627r00o00p00")
def wotext(a):
result=[]
for i in a:
try:
if int(i) >= 0 and int(i) <= 9 :
result.append(i)
except:
pass
return "".join(result)
text = 'eifjeifj1234idkdkd'
print(wotext(text))
import re
def removeStr(Str):
result = ""
p = re.compile('(\w+)\s([:])\s(\w+)')
m = p.search(Str)
for i in m.group(3):
try:
if int(i)>=0:
result += i
except ValueError:
pass
print(m.group(1)+" "+m.group(2)+" "+result)
removeStr("xxx : 1w627r00o00p00")
word_number=input("wirte someting")
for_answer=list(word_number)
print(for_answer)
answer=[]
number=['0','1','2','3','4','5','6','7','8','9']
for i in for_answer:
if i in number:
answer.append(i)
print("".join(answer))
def number(n):
import re
regex = re.compile('\d+')
result = int(''.join(regex.findall(n)))
return result
str1=input()
list1=[]
for i in range(len(str1)):
if ord(str1[i])>=48 and ord(str1[i])<=57:
list1.append(str1[i])
for i in list1:
print(i,end="")
temp = input("선수 몸값을 입력하세요: ")
num_list = []
for i in range(0, 10):
num_list.append(str(i))
num_list
new_temp = ''
for i in temp:
if i in num_list:
new_temp += i
print(new_temp)
숫자로 된 리스트를 만들고 그 리스트와 비교하여 숫자들만 뽑아내는 방식입니다.
a = '19s4f2a5sd9'
temp = ''
for i in range(0, len(a)):
if ord(a[i]) < 47 or ord(a[i]) > 58:
print(a[i])
temp += a[i]
print(temp)
def convert(word):
output = ''
for w in word:
if w.isdigit():
output += w
else:
continue
return output
print(convert('1w627r00o00p00'))
A = input('type here! : ')
result = []
for i in A:
if i.isdigit():
result.append(i)
print(''.join(result))
x=input('몸값 입력')
result=''
for i in x:
if ord(i) >= 48 and ord(i) <=57 :
result=result + i
print(result)
python 3.9.5입니다.
string = input('숫자와 문자가 혼합된 문자열을 입력하세요. ')
int_part = ''
for chr in string:
if chr.isdigit(): int_part += chr
print(f'숫자 부분: {int_part}')
실행 결과입니다.
숫자와 문자가 혼합된 문자열을 입력하세요. 1w627r00o00p00
숫자 부분: 1627000000
#파이썬입니다.
def FOR_HYUNU ():
Stirng = input("복붙하시오")
numbers = list('0123456789')
list_of_String = []
for i in range(0, len(Stirng)):
if Stirng[i] in numbers:
list_of_String.append(Stirng[i])
else:
pass
result = ''.join(list_of_String)
print(result)
FOR_HYUNU()
#codingdojing_returnNum
# 1
numList = "0123456789"
a = input("Num string: ") #1w627r00o00p00
result = ''
for i in a:
if i in numList:
result += i
print(result) #1627000000
# 2
import re
print(''.join(re.findall(r'\d+', input("Num string: "))))
static String integer(String x) {
String y = "";
for(int i = 0; i < x.length(); i++) {
if (x.charAt(i) >= '0' && x.charAt(i) <= '9') {
y += x.charAt(i);
}
}
return y;
}
public static void main(String[] args) {
System.out.println(integer("1w627r00o00p00"));
}
a = list("".join(str(input("몸값 입력"))))
b= list(map(ord,a))
print(b)
result =[]
for i in b :
if i >= 48 and i <= 57 :
result.append(chr(i))
print("".join(result))
a=input('숫자를 입력하세요')
Li = [str(x) for x in range(10)]
b=[]
for i in a:
if i in Li:
b.append(i)
print(''.join(b))
import re
player = input('선수 번호를 입력하세요(문자열 입력시 자동으로 제거 됨): ')
numbers = re.sub(r'[^0-9]', '', player)
print(numbers)
import re
text = input()
A = re.match('.*:',text).group()
B = re.compile('\D*').sub('',text)
print(A,B)
var quest = '1w627r00o00p00';
var integerType = typeof(1);
var stringType = typeof("1")
var endquest = "";
var questList = quest.split("");
for(i = 0; i < questList.length; i++)
{
var changeType = Number(questList[i]);
var changeString = String(changeType);
endquest = endquest + changeString;
}
endquest = endquest.replace(/\NaN/g , "");
console.log(endquest);
import re
cmd = input("몸값을 입력하시오 : ")
new_cmd = re.sub(r"[a-z]","", cmd)
print_cmd = re.sub(r"[A-Z]", "", new_cmd)
print(print_cmd)
re함수를 이용헤 코드를 만들었습니다.
방법이 다양할 것 같은데 예외처리로 해봤어요
ui = input("문자와 숫자 섞인 문자열 입력>> ")
r = ''
for i in ui:
try:
int(i)
r += i
except: pass
print(r)
파이썬 3.10
# 정규표현식 사용
import re
input_ = input('문자를 제거할 문자열을 입력하세요 : ')
print(int(re.sub("[\D]",'',input_)))
#filter 함수 사용
''.join(filter(str.isnumeric, input_))
#리스트 표현식 사용
''.join([ i for i in input_ if str.isnumeric(i) ])
파이썬 입니다
Python. isdigit이라는 함수를 처음 발견했네요. 잘 기억해 두어야 할 것 같습니다.
def eliminate_chr():
a=input("Type here : ") #사용자의 데이터 입력
result=""
for i in a:
if i.isdigit(): #입력된 데이터의 각 요소값이 숫자인지 확인
result+=i #숫자일 경우 결과에 추가
print(result)
eliminate_chr()
찾다 보니, re 모듈을 사용하면 더 간편해지기는 하더군요. 다만 정규식을 쓰는 함수라, 더 공부하고 나중에 제대로 활용할 수 있을 것 같습니다.
import re
def eliminate_chr():
a=input("Type here : ")
result=re.sub(r'[^0-9]', '', a)
print(result)
eliminate_chr()
input_value = input()
result = ''
for i in input_value :
try :
a = int(i)
result = result + i
except :
pass
print(result)
strA=input()
def changeNuberKey(strA):
strB=""
for i in strA:
if ord(i)>=48 and ord(i)<=57:
strB+=i
return strB
print(changeNuberKey(strA))
using System;
namespace solution
{
class Program
{
static void Main(string[] args)
{
Console.Write("우리나라선수들의몸값: ");
string playerValue = Console.ReadLine();
useCharValue(playerValue);
}
private static void useCharValue(string playerValue)
{
string pv = "";
for (int i = 0; i < playerValue.Length; i++)
{
if ('0' <= playerValue[i] && playerValue[i] <= '9')
pv += playerValue[i];
}
Console.WriteLine("\n {0}", pv);
}
}
}