문자와 숫자가섞인 문자열을 입력받을때 구별하여출력해라
input:
"c910m6ia 1ho"
output:
str : cma ho
int : 91061
117개의 풀이가 있습니다.
str_input,int_input="",""
#ex:pa2th0n
for i in input():
try:
int(i)
int_input+=i
except:
str_input+=i
print("str : ",str_input)
print("int : ",int_input)
inp = input()
print('str : ',''.join(x for x in inp if not x.isdigit()),'\nint : ',''.join(x for x in inp if x.isdigit()))
while True:
user=input("Input: ")
string='abcdefghijklmnopqrstuvwxyz '
number='0123456789'
str=''
int=''
for i in user:
if i in string or i in string.upper():
str+=i
if i in number:
int+=i
print("str: {}\nint: {}\n".format(str,int))
namespace codingdojang__
{
class Program
{
static void Main(string[] args)
{
Type("c910m6ia 1ho");
}
static void Type(string input)
{
string str = "";
string int_ = "";
int temp;
for(int i = 0; i < input.Length; i++)
{
if(int.TryParse(input[i].ToString(), out temp) == true)
{
int_ += temp;
}
else
{
str += input[i];
}
}
Console.WriteLine("str : {0}", str);
Console.WriteLine("int : {0}", int_);
}
}
}
a =input()
b = list(map(ord,("".join(a))))
str_arr = []
int_arr = []
for i in b :
if i <48 or i>57 :
str_arr.append(chr(i))
else :
int_arr.append(chr(i))
print("str :" , "".join(str_arr))
print("int :" , "".join(int_arr))
Python 3.7
rst = [(s, '') if s.isdecimal() else ('', s) for s in input()]
print(f"str : {''.join([t[0] for t in rst])}\nint : {''.join([t[1] for t in rst])}")
비쥬얼 스튜디오로 작성하였습니다. 레벨1이라서 굉장히 쉬울줄 알았는데 막상 코딩해보니까 생각처럼 결과가 잘 나오지 않아서 조금 고생했네요.
#include <stdio.h>
#include <iostream>
using namespace std;
void main() {
char input[30];
printf("input : ");
gets_s(input);
char str[30] = { 0 , };
int num[30] = { 0, };
for (int i = 0; i < strlen(input); i++)
{
if (input[i] >= 48 && input[i] <= 57)
{
num[i] = input[i];
}
else if (input[i] < 48 || input[i] > 57)
{
str[i] = input[i];
}
}
printf("str : ");
for (int i = 0; i < 30; i++)
{if (str[i] != 0)
printf("%c", str[i]);
}
printf("\nint : ");
for (int i = 0; i < 30; i++)
{if (num[i] != 0)
printf("%d", num[i] - 48);
}
}
a = input()
strs=''
ints=''
for i in a:
try:
int(i)
ints+=i
except:
strs+=i
print('str : {}'.format(strs))
print('int : {}'.format(ints))
data = input("Input Data : ")
number = ""
char = ""
for i in data:
if i >= '0' and i <= '9':
number += i
else:
char += i
print ('str : ', char)
print ('int : ', number)
integer = ''
string = ''
for i in input() :
if i.isdigit() :
integer += i
else :
string += i
print(f'str : {string}')
print(f'int : {integer}')
public void solution(String word) {
String word = "c910m6ia 1ho";
String[] array = new String[word.length()];
String strWord = "";
String intWord = "";
array = word.split("");
for(int i = 0; i < array.length;i++) {
String temp = array[i];
if(this.isNumber(temp)) {
intWord += temp;
} else {
strWord += temp;
}
}
System.out.println(strWord);
System.out.println(intWord);
}
public boolean isNumber(String str){
boolean result = false;
try{
Double.parseDouble(str) ;
result = true ;
} catch(Exception e){}
return result ;
}
}
user_InputData = input("input : ")
text = ''
number = ''
for i in user_InputData :
if i.isdigit() :
number+=i
else :
text+=i
print("str : ", text)
print("int : ", number)
input = "c910m6ia 1ho"
my_list = list(input)
string = []
digit = []
for i in my_list:
if i.isdigit() == True:
digit.append(i)
else:
string.append(i)
str_list = ''.join(string)
dig_list = ''.join(digit)
print('str :', str_list)
print('int :', dig_list)
package test;
public class test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Distinction("c910m6ia 1ho");
}
public static void Distinction(String args) {
char check ;
String num= "";
String text = "";
for (int i =0; i<args.length(); i++) {
check = args.charAt(i);
if(check < 48 || check >58) {
text += args.charAt(i);
} else {
num += args.charAt(i);
}
}
System.out.println("text:"+text);
System.out.println("num:"+num);
}
}
sample = input()
int_ = []
str_ = []
for i in sample:
if i.isdigit():
int_.append(i)
else:
str_.append(i)
int_result = ''.join(int_)
str_result = ''.join(str_)
print('str : {}'.format(str_result))
print('int : {}'.format(int_result))
function solution(n) {
var input = n;
var numStr = '';
var engStr = '';
for (var i = 0; i < input.length; i++) {
var _char = input[i].charCodeAt();
if (_char > 47 && _char < 58) { // 숫자 구분
numStr += input[i];
} else if ((_char > 64 && _char < 91) || _char > 96 && _char < 123) { // 영문구분
engStr += input[i];
}
}
console.log(numStr);
console.log(engStr);
}
solution('c910m6ia');
z=0
k=0
def 숫자_문자_구별(x):
global k
y=[]
z=[]
for i in x:
if (x[k]).isdigit()==True:
y.append(x[k])
if (x[k]).isalpha()==True:
z.append(x[k])
k =k+1
return y,z
x=input("숫자와 문자를 구별해줄게")
print(숫자_문자_구별(x))
포인터에 동적할당해서 풀었습니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
int str_c = 0, int_c = 0;
int max_len = 100;
char *int_text = malloc(sizeof(char) * max_len);
char *str_text = malloc(sizeof(char) * max_len);
char *text = malloc(sizeof(char)*max_len);
scanf("%[^\n]s", text);
for (int i = 0; i < max_len; i++)
{
if ((48 <= text[i]) && (text[i] <= 57))
{
int_text[int_c] = text[i];
int_c++;
}
else if (text[i] == '\0')
{
int_text[int_c] = '\0';
str_text[str_c] = '\0';
break;
}
else
{
str_text[str_c] = text[i];
str_c++;
}
}
printf("입력한 문자열 : %s\n\n", text);
printf("숫자 : %s\n\n", int_text);
printf("문자 : %s\n\n", str_text);
free(text);
free(int_text);
free(str_text);
return 0;
}
distributing = input("wirte down what you want, including str and int: ")
string1 = 'abcdefghijklmnopqrstuvwxyz'+' '
string2 = string1.upper()
integer = '0123456789'
strr = ''
intt = ''
for i in range(0,len(distributing)):
if distributing[i] in string1:
mid = distributing[i]
strr += mid
elif distributing[i] in string2:
mid2 = distributing[i]
strr += mid2
elif distributing[i] in integer:
mid3 = distributing[i]
intt += mid3
print("str : {0}\nint : {1}".format(strr.intt))
a = input()
lists = list(a)
var_str = list()
var_int = list()
for i in lists :
if (65 <= ord(i) <= 91) | (97 <= ord(i) <= 123) | (i==' '):
var_str.append(i)
else:
var_int.append(i)
print(''.join(var_str))
print(''.join(var_int))
detector = input("input: ")
char = ""
num = ""
t = ""
for entry in detector:
try:
t = int(entry)
num += entry
except ValueError:
char += entry
print(f"str : {char}")
print(f"int : {num}")
def isnum(s): try: float(s) return True except ValueError: return False
a= "c910m6ia 1ho" b="" c="" for i in a: if isnum(i):c+=i else: b+=i print(b,c)
s=input("input:\n");strr='';intt=''
for i in s:
if ord(i)>=ord('0') and ord(i)<=ord('9'):
intt+=i
else:
strr+=i
print('''output:
str:{}
int:{}'''.format(strr,intt))
import re
integral = re.compile(r'\d')
string = re.compile(r'\D')
words = input('')
print("int : ", ''.join(integral.findall(words)))
print("str : ", ''.join(string.findall(words)))
str_input, int_input ="","" mixinput=input()
for i in mixinput: try: int(i) int_input += i except: str_input += i
print("{} 숫자입력 {} 문자입력".format(int_input, str_input))
data="c910m6ia 1ho"
string=''
number=''
for i in data:
if i>='0' and i<='9':
number+=i
else :
string+=i
print(f'str : {string}\nint : {number}')
inp = input('>>>')
print('str :', ''.join(i for i in inp if i.isdigit()==0), '\nint :', ''.join(i for i in inp if i.isdigit()))
'use strict';
function determineCharsAndNumbers(input) {
let numbers = [];
let chars = [];
Array.from(input).forEach(char => {
if (char * 1 === parseInt(char)) {
numbers.push(char);
} else {
chars.push(char);
}
});
return { numbers, chars };
};
const {numbers, chars} = determineCharsAndNumbers('c910m6ia 1ho');
console.log(`Numbers: ${ numbers.join('') }`);
console.log(`Characters: ${ chars.join('') }`);
코드를 올리고 나서, '어라, 그냥 정규식 쓰면 되잖아'하는 생각이 들었습니닼ㅋㅋ
function determineCharsAndNumbersByRegex(input) {
const numbers = input.match(/\d/g);
const chars = input.match(/[^\d]/g);
return { numbers, chars };
}
def recog(string):
digit, char = '',''
for i in string:
if i.isdigit():
digit += i
else:
char += i
print('str : {}\nint : {}'.format(char, digit))
input = 'c910m6ia 1ho'
recog(input)
static void Main(string[] args)
{
List<string> inputData = new List<string>()
{
"c910m6ia 1ho"
};
List<string> validStrList = new List<string>();
List<string> validIntList = new List<string>();
foreach (string input in inputData)
{
char[] inputArr = input.ToCharArray();
foreach (char c in inputArr)
{
if (IsNum(Convert.ToString(c)))
validIntList.Add(c.ToString());
else
validStrList.Add(c.ToString());
}
}
Console.Write("str : ");
foreach (string input in validStrList)
{
Console.Write(input + "");
}
Console.WriteLine();
Console.Write("int : ");
foreach (string input in validIntList)
{
Console.Write(input + "");
}
Console.WriteLine();
}
public static bool IsNum(string s)
{
int numChk = 0;
return int.TryParse(s, out numChk);
}
a = input("input:")
b=""
c=""
for i in a:
if(True == i.isalpha()):
b=b+i
else:
c=c+i
print("str:",b)
print("int:",c)
s = input('input : \n')
char = ''
inte = ''
for ch in s :
if ch.isalpha() :
char += ch
elif ch.isnumeric() :
inte += ch
print('output :')
print('str : {}'.format(char))
print('int : {}'.format(inte))
# -*- coding : utf-8 -*-
import re
def split_str(in_str):
str = re.sub('[^a-zA-Zㄱ-힗 ]', '', in_str)
int = re.sub('[^0-9]', '', in_str)
print('str : ', str)
print('int : ', int)
split_str('c910m6ia 1ho')
inp = input('input = ')
print('str:', ''.join(x for x in inp if not x.isdigit()))
print('int:', ''.join(x for x in inp if x.isdigit()))
Ruby
def classify(input = gets.chop)
dgt, str = input.chars.partition { |ch| ch =~ /[0-9]/ }.map(&:join)
puts "str : #{str}", "int : #{dgt}"
end
Test
$stdin = StringIO.new("c910m6ia 1ho\n")
result = "str : cmia ho\n" +
"int : 91061\n"
expect { classify }.to output(result).to_stdout
def solution(text):
t = list(text)
s = ''; n = ''
for i in range(len(t)):
if t[i].isdigit():
n += t[i]
else:
s += t[i]
return "str : " + s + "\nint : " + n
print(solution("c910m6ia 1ho"))
c++도 string을 배열처럼 사용할 수 있게 됬네요. 언제부터 됬었지;; 간편하게 짜보았습니다.
#include<iostream>
using namespace std;
int main()
{
string str;
cin >> str;
string ch;
string num;
for (int i = 0; i < str.length(); i++)
{
if (str[i] >= '0' && str[i] <= '9')
{
num += str[i];
}
else
{
ch += str[i];
}
}
cout << "num : " << num << endl;
cout << "ch : " << ch << endl;
}
print('input :')
input_str = input()
num_str = ''
str_str = ''
for lit in input_str:
try:
d = int(lit)
num_str = num_str + lit
except:
str_str = str_str + lit
print('output :')
print("str : ", str_str)
print("int : ", num_str)
string = input("Input: ")
digits = ""
chars = ""
for x in string:
if x.isdigit():
digits += x
else:
chars += x
print("Digits :", digits)
print("Characters :", chars )
string=input("문자열과 숫자 섞어서 입력")
s=""
n=""
number=['0','1','2','3','4','5','6','7','8','9']
for i in string:
if i in number:
n=n+i
else:
s=s+i
print("str: ",s)
print("int: ",n)
import re
input_1 = "c910m6ia 1ho"
m = re.findall('[a-zA-Z ]', input_1); print("str :", ''.join(m))
n = re.findall('[0-9]', input_1); print("int :", ''.join(n))
정규표현식으로 표현해봤습니다. 처음 사용하는 정규표현식이라 많이 어색할 수 도 있을것 같네요. 좀더 간결하게 고칠수 있다면, 지적부탁드립니다!
import re
def sep(a):
list1 = a.split(' ')
list_res = []
list_res2 = []
# print(list1)
for i in list1:
list_str = []
list_int = []
x = ''
y = ''
list_str = re.findall(r'[a-zA-Z]+', i)
for j in range(0, len(list_str)):
x = x + list_str[j]
if x != '':
list_res.append(x)
list_int = re.findall(r'[0-9]+', i)
for k in range(0, len(list_int)):
y = y + list_int[k]
if y != '':
list_res2.append(y)
print('str :', ' '.join(list_res))
print('int :', ' '.join(list_res2))
sep("df3kfhk990df2 dfj40fjj1 dfjhjd 345")
을 입력하면
str : dfkfhkdf dfjfjj dfjhjd
int : 39902 401 345
라는 결과를 얻을 수 있습니다.
import re
num = re.compile("[0-9]")
n_list, n_not_list = [], []
inp = input("input :")
for k in inp :
if num.match(k) == None :
n_not_list.append(k)
else :
n_list.append(k)
print("int : %s\nstr : %s"%("".join(n_list), "".join(n_not_list)))
이번에 배운 정규식을 한번 활용해봤습니다.
결과
input :c910m6ia 1ho
int : 91061 str : cmia ho
inp = input('input : ')
num = []
str = []
for i in range(len(inp)):
if inp[i].isdecimal(): #숫자면
num.append(inp[i])
else: #숫자가 아니면
str.append(inp[i])
print('int : %s \nstr : %s' %("".join(num), "".join(str)))
num = "0123456789"
num_list = list(i for i in num)
text = input("입력하세요 : ")
result_txt = ""
result_num = ""
for i in range(len(text)):
if text[i] in num_list:
result_num +=text[i]
else :
result_txt +=text[i]
print("str : ",result_txt)
print("int : ",result_num)
name=input('input: ')
str=str()
num=str()
for i in name:
try:
int(i)
n+=i
except:
s+=i
print(str)
print(num)
import java.util.*;
public class 숫자문자열구별하기 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String line = scan.nextLine();
StringBuffer str = new StringBuffer();
StringBuffer integer = new StringBuffer();
for(int i=0; i<line.length(); i++) {
if((64<line.charAt(i)&&line.charAt(i)<91)||(96<line.charAt(i)&&line.charAt(i)<123)||line.charAt(i)==32) {
str.append(line.charAt(i));
}
if(47<line.charAt(i)&&line.charAt(i)<58) {
integer.append(line.charAt(i));
}
}
System.out.println(str);
System.out.println(integer);
}
}
파이썬 입니다.
import re
input_char = "c910m6ia 1ho"
print(f'''='str : {''.join([x for x in input_char if not x.isdigit()])}''')
print(f"int : {''.join([x for x in input_char if x.isdigit()])}")
a=input()
str_a=""
str_b=""
for i in a:
if 48<= ord(i) >=58:
str_a +=i
else:
str_b +=i
print(str_a)
print(str_b)
아스키코드를 이용해 간단하게 해봣습니다
#문자와 숫자가 섞인 문자열을 입력받았을 때 이를 구별하여 출력해라
i=input("아무 숫자나 문자를 입력하십시오: ")
str1=""
int1=""
for n in i:
try:
int(n)
int1+=n
except:
str1+=n
continue
print("str:",str1)
print("int:",int1)
inputstring = "c910m6ia 1ho"
strresult = ""
intresult = ""
for i in inputstring:
if i.isdigit():
strresult += i
else :
intresult += i
print("str : %s\n" % strresult + "int : %s" % intresult)
var none = [];
var number = [];
var word = [];
var numberis = [];
var wordis = [];
var string = 'c910m6ia 1ho';
var pattern_1 = /[0-9]/;
var pattern_2 = /[a-z]/i;
for(var i = 0; i < string.length; i++){
if(pattern_1.exec(string[i]) !== null) number.push(pattern_1.exec(string[i]));
if(pattern_2.exec(string[i]) !== null) word.push(pattern_2.exec(string[i]));
};
for(var j = 0; j < number.length; j++){
numberis.push(number[j][0]);
};
for(var k = 0; k < word.length; k++){
wordis.push(word[k][0]);
};
console.log("number is "+numberis.join(''));
console.log("Word is "+wordis.join(''));
N, Nint, Nstr,Nstrmain, Nintmain = list(input()), list(), list(), '',''
for i in range(len(N)):
try:Nint.append(int(N[i]))
except ValueError:Nstr.append(N[i])
for j in range(len(Nstr)):Nstrmain = Nstrmain + Nstr[j]
for j in range(len(Nint)):Nintmain = Nintmain + str(Nint[j])
print(f'str:{Nstrmain}')
print(f'int:{Nintmain}')
파이썬 3입니다
x = input()
str_ = ''
int_ = ''
for i in x:
if i in tuple(map(str, range(10))):
int_ += i
else:
str_ += i
print('str : {}\nint : {}'.format(str_, int_))
a = list(input("입력: "))
b = []
c = []
for i in a:
if i.isdigit() == True:
b.append(i)
elif i.isdigit() == False:
c.append(i)
print("int: {}".format("".join(b)))
print("str: {}".format("".join(c)))
import re
text = str(input("Enter the number:"))
a = (re.sub('\D+','',text))
b = (re.sub('\d+','',text))
print("str:",b,"int:",a)
def str_int(string):
string = input('문자와 숫자가 섞이 문자열을 입력하세요:')
str_s, int_i = '', ''
for i in string:
if i.isalpha() == True:
str_s = str_s+i
elif i.isdigit() == True:
int_i = int_i + i
else:
pass
print('str :',str_s,'\n','int :',int_i)
ilst=str()
slst=str()
for i in input():
try:
int(i)
ilst+=i
except:
slst+=i
print('int :',ilst,'\nstr :',slst)
파이썬
inp=input()
string=''
integer=''
for s in inp:
if s.isdigit():
integer+=s
else: string+=s
print(f'str:{string}\nint:{integer}')
import re
p=re.compile('\d')
q=re.compile('[a-zA-Z]')
dat=str(input())
data=dat.split()
num=[]
string=[]
for i in data:
m=p.findall(i)
n=q.findall(i)
if m:
num.append(''.join(m))
if n:
string.append(''.join(n))
print('num '+' '.join(num))
print('str '+' '.join(string))
case = "c910m6ia 1ho"
def tell_type(input_str):
result_str = ""
result_int = ""
for x in input_str:
try:
int(x)
except ValueError:
result_str += x
continue
else:
result_int += x
result = "str: {0}\nint: {1}".format(result_str, result_int)
return result
if __name__ == "__main__":
print(tell_type(case))
def aprint (a):
for i in range(len(a)):
print(a[i],end='')
aint,astr,a=[],[],str(input('Input : '))
for i in range (len(a)):
if ord(a[i])>=48 and ord(a[i])<=57:
aint.append(a[i])
else:
astr.append(a[i])
print('str : ', end='')
aprint(astr)
print('\nint : ', end='')
aprint(aint)
a=input('문자 숫자 섞어서 입력해봐ㅏ .. 분리해줄게; ')
st=''
intg=''
for i in range(len(a)):
try:
if type(int(a[i]))==int:
intg+=a[i]
except:
st+=a[i]
print('str ',st)
print('int ',intg)
Str=input("문자열 입력 : ")
String=""
Int=""
for i in range(len(Str)):
if ord(Str[i])>47 and ord(Str[i])<58:
Int+=Str[i]
else:
String+=Str[i]
print("str : {}\nint : {}".format(String,Int))
str=''
num=''
for i in input():
if i.isdecimal(): num+=i
else: str+=i
print(f"str : {str}")
print(f"int : {num}")
NUMBER.isdecimal()함수는 내장함수로 문자열을 입력받아 전부 숫자인지 확인합니다. 파이썬 3.6에서 테스트했습니다
package test;
import java.util.*;
public class Test{
public static void main(String[] args) {
StringBuffer a = new StringBuffer();
StringBuffer b = new StringBuffer();
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
for(int i=0;i<input.length();i++) {
if(97<=(int)input.charAt(i)&&(int)input.charAt(i)<=122||(int)input.charAt(i)==32)
a.append(input.charAt(i));
else if(48<=(int)input.charAt(i)&&(int)input.charAt(i)<=57)
b.append(input.charAt(i));
}
System.out.println(a);
System.out.println(b);
sc.close();
}
}
using System;
using System.Text.RegularExpressions;
namespace _61일차_10월01일
{
class MainApp
{
static void Main(string[] args)
{
//입력받은 데이터 저장
Console.Write("Input : ");
string Input = Console.ReadLine();
//입력 받은 데이터 조건별 추출
string String_Value = Regex.Replace(Input, @"[^a-zA-Z]", "");
int Int_Value = int.Parse(Regex.Replace(Input, @"[^0-9]", ""));
//추출된 데이터 출력
Console.Write($"Output : \nstr : {String_Value}\nint : {Int_Value}");
}
}
}
import re
n=input()
print('str : '+''.join(re.findall(r'[^0-9]',n)))
print('int : '+''.join(re.findall(r'[0-9]',n)))
def split(word):
return list(word)
list_num=[]
list_chr=[]
word = str(input('문자열(숫자포함 가능)을 입력해 주세요:'))
answer = split(word)
for i in answer:
if i == '0' or i == '1' or i == '2' or i == '3' or i == '4' or i == '5' or i == '6' or i == '7' or i == '8' or i == '9':
list_num.append(i)
else:
list_chr.append(i)
print("".join(list_num))
print("".join(list_chr))
import re
class dividingMachine:
def __init__(self):
self.str = ""
self.int = ""
def treatSTR(self,line):
for i in range(0,len(line)):
p = re.compile(r"[0-9]")
m = p.search(line[i])
if m:
self.int += line[i]
else:
self.str += line[i]
a = dividingMachine()
a.treatSTR("c910m6ia 1ho")
print(" str = ",a.str)
print(" int = ",a.int)
string = ""
number = ""
for i in input("입력 : "):
if i.isdigit():
string += i
else:
number += i
print("str : " + string)
print("int : " + number)
def filter(text):
temp = list(text)
_str = []
_int = []
for aa in temp:
if aa in list('0123456789'):
_int.append(aa)
else:
_str.append(aa)
return([_str,_int])
_text = input('INPUT: ')
print('str : ', "".join(filter(_text)[0]))
print('int : ', "".join(filter(_text)[1]))
ints=['1','2','3','4','5','6','7','8','9','0']
def str_or_int():
intsa=[]
strsa=[]
word=input("write something")
for i in word:
if i in ints:
intsa.append(i)
else:
strsa.append(i)
print("str : {0}".format(''.join(strsa)))
print("int : {0}".format(''.join(intsa)))
str_or_int()
s = input()
ints = ""
strs = ""
for i in s:
if(ord("0")<=ord(i) and ord(i)<=ord("9")):
ints += i
else:
strs += i
print("str: %s" %strs)
print("int: %s"%ints)
def division(x):
import re
num = ''.join(re.compile('\d+').findall(x))
text = ''.join(re.compile('\D+').findall(x))
print('number : {}\ntext : {}'.format(num,text))
inp= 'c910m6ia 1ho'
print('str : ',''.join(x for x in inp if not x.isdigit()),'\nint : ',''.join(x for x in inp if x.isdigit()))
/* 문자와 숫자가섞인 문자열을 입력받을때 구별하여출력해라 */
const solution = (input) => {
let str = ""
let num = ""
input.split("").map((v) => (isNaN(v) || v === " " ? (str += v) : (num += v)))
return { str, num }
}
const result = solution("c910m6ia 1ho")
console.log(`src: ${result.str}\nnum: ${result.num}`)
x = str(input())
out_str = ''
out_int = ''
for s in x:
try:
int(s)
out_int += s
except:
out_str += s
print(f'str : {out_str}')
print(f'int : {out_int}')
a = input()
b = 'str : '
c = 'int : '
for i in a:
if i.isdecimal():
c = c + i
else:
b = b + i
print(b, c)
a = input()
str,int_str = "",""
for i in a:
if i.isdigit() == True:
int_str += i
else:
str += i
print(str)
print(int_str)
x=input('문자열 입력')
string=''
integral=''
for i in x:
if i in list(map(str, range(10))):
integral += i
else:
string += i
print('str :{}\nint : {}'.format(string, integral))
def recog(string): digit, char = '','' for i in string: if i.isdigit(): digit += i else: char += i print('str : {}\nint : {}'.format(char, digit))
input = 'c910m6ia 1ho' recog(input)
# n = list('c910m6ia 1ho')
n = list(input())
usr_str, usr_int='', ''
# list(map(lambda x: a.append(x) if ord(x)>= 48 and ord(x)<=57 else x, n))
for i in n:
if ord(i)>= 48 and ord(i)<=57:
usr_str += i
else:
usr_int += i
print(f'str: {usr_str}')
print(f'int: {usr_int}')
def makeAns(str1):
str2 = "".join([elem for elem in str(str1) if elem.isdigit()])
str3 = "".join([elem for elem in str(str1) if elem.isdigit() == False])
print("str : " + str3 + "\n" + "int : " + str2)
makeAns("c910m6ia 1ho")
str : cmia ho
int : 91061
x = input()
strlist=[]
intlist=[]
for i in x:
if i.isdigit():
intlist.append(i)
else:
strlist.append(i)
for i in strlist:
print(i,end="")
print()
for i in intlist:
print(i,end="")
k = "c910m6ia 1ho"
a, b = k.split(' ')
print("str :",''.join([i for i in a if i.isalpha()]),''.join([i for i in b if i.isalpha()]))
print("int :",''.join([i for i in k if i.isdigit()]))
a = "c910m6ia 1ho"
N = []
S = []
for i in a :
if 64<ord(i)<123 : S.append(i)
elif 47<ord(i)<58 : N.append(i)
else : pass
print(N)
print(S)
import re
dat = input('input: ')
print('str : ', re.sub('\d', '', dat))
print('int : ', re.sub('[^\d]', '', dat))
python 3.9.5입니다.
string = input('숫자/문자를 분리할 문자열을 입력하세요. ')
str_part = ''
int_part = ''
for chr in string:
if chr.isdigit(): int_part += chr
else: str_part += chr
print(f'문자 부분: {str_part}')
print(f'숫자 부분: {int_part}')
실행 결과입니다.
숫자/문자를 분리할 문자열을 입력하세요. c910m6ia 1ho
문자 부분: cmia ho
숫자 부분: 91061
def number(x):
num_arg, str_arg = "", ""
for i in str(x):
if i.isdigit():
num_arg = num_arg + i
else:
str_arg = str_arg + i
print("str : ", str_arg)
print("num : ", num_arg)
#codingdojing_sortNumStr
str1 = ''
int1 = ''
for c in input():
if c.isdigit(): int1 += c
else: str1 += c
print(f'str : {str1}\nint : {int1}')
import re
text = input()
m1 = re.findall(f'[\D]', text) #숫자가 아닌것, 숫자인것
m2 = re.findall(f'[\d]', text)
print("str :",''.join(m1), "\nint :", ''.join(m2)) # join을 하면 문자열이므로, +나 ,를 써줘야함.
파이썬 3.8.10으로 작성되었습니다.
input_data = input()
output_str = ''
output_int = ''
for i in input_data:
if i.isdigit():
output_int += i
else:
output_str += i
print(f'str : {output_str}, int : {output_int}')
n = input("")
sstr = ""
nstr = ""
for i in n :
if i.isdigit() : nstr += i
else : sstr += i
print("str :%s, num :%s"%(sstr, nstr))
"방법1"
a = input()
s = ""
n = ""
for i in a:
if i <= '9':
n += i
else:
s += i
print("str: {0}".format (s))
print("int: {0}".format (n))
"방법2"
a = input()
s = ""
n = ""
for i in a:
if i.isdigit():
n += i
else:
s += i
print("str: {0}".format (s))
print("int: {0}".format (n))
str='';int=''
for i in input():
if i.isdigit(): int+=i
else: str+=i
print('str : %s\nint : %s'%(str,int))
# '¹' 을 문자로 본다면
s = input()
print('str:', ''.join(c for c in s if not c.isdecimal()))
print('int:', ''.join(c for c in s if c.isdecimal()))
# '¹' 도 숫자로 본다면
s = input()
print('str:', ''.join(c for c in s if not c.isnumeric()))
print('int:', ''.join(c for c in s if c.isnumeric()))
static void str(String x) {
String str = "", num = "";
for(int i = 0; i < x.length(); i++) {
if(x.charAt(i)>='0' && x.charAt(i)<='9') {
num += x.charAt(i);
}else
str += x.charAt(i);
}
System.out.printf("str : %s%nint : %s", str, num);
}
public static void main(String[] args) {
str("c910m6ia 1ho");
}
a = 'c910m6ia 1ho'
mun = ''
su = ''
for i in a:
if i.isdigit():
su += i
else:
mun += i
print(f'str : {mun}\nint : {su}')
a = input('문자와 숫자가섞인 문자열을 입력하시요.')
str_list = []
num_list = []
for i in a:
if i.isdigit():
num_list.append(i)
else:
str_list.append(i)
print(''.join(num_list))
print(''.join(str_list))
public class test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String st1 = str.replaceAll("[^a-z]", "");
String st2 = str.replaceAll("[^0-9]", "");
System.out.println("str: " + st1);
System.out.println("int: " + st2);
}
}
word = "c910m6ia 1ho"
def func(data):
nums = ""
strs = ""
for s in data:
if s.isdigit():
nums += s
else: strs += s
return nums,strs
print('int: {}'.format(func(word)[0]))
print('str: {}'.format(func(word)[1]))
import re
def detectDigitStr():
strings = input()
integer = re.sub(r'[^0-9]', '', strings)
string = re.sub(r'[0-9]', '', strings)
print(f"str : {string}\nint : {integer}")
a = str(input("문장을 적으시오. >>"))
list_a = [a]
for i in a:
list_a.append(i)
try:
int(i)
print("int = ",i)
except:
print("str = ",i)
ui = "c910m6ia 1ho"
s, i = '', ''
for c in ui:
try:
int(c)
i+=c
except: s+=c # ' '(공백)은 문자
print(f'''input:
"{ui}"
output:
str: {s}
int: {i}''')
파이썬 3.10
Python. .isdigit()은 쓸 곳이 은근히 많은 것 같습니다.
strings=input('임의의 문자열을 입력하시오. : ')
char = ""
digit = ""
for i in strings:
if i.isdigit()==True:
digit+=i
else:
char+=i
print('str : ', char)
print('int : ', digit)
input_value = input("input : ")
ints = ''
strs = ''
for i in input_value :
try :
i = int(i)
ints = ints + str(i)
except :
strs = strs + i
print("int : {0}\nstr : {1}".format(ints, strs))
a = input("Input your sentence: ")
result_str = []
result_int = []
for i in a:
if i.isdigit() == True:
result_int.append(i)
else:
result_str.append(i)
print("str: ", "".join(result_str))
print("int: ", "".join(result_int))
python
words = input("input: ")
w_str = ''; w_int=''
for i in range(len(words)):
if ord(words[i]) >= 48 and ord(words[i]) <= 57:
w_int += words[i]
else:
w_str += words[i]
print("output:")
print("str : ", w_str)
print("int : ", w_int)
int = ''
str = ''
for i in input() :
if i.isdigit():
int += i
else:
str += i
print({str})
print({int})