簡體   English   中英

拆分給定字符串中的數字、字符串、特殊字符

[英]Split numeric,strings,special characters in given string

給定一個由字母、數字和特殊字符組成的字符串 S。 您需要編寫一個程序將字符串拆分為三個不同的字符串 S1、S2 和 S3,這樣字符串 S1 將包含 S 中存在的所有字母,字符串 S2 將包含 S 中存在的所有數字,S3 將包含所有特殊字符S 中出現的字符。字符串 S1、S2 和 S3 的字符順序應與它們在輸入中出現的順序相同。

輸入:輸入的第一行包含一個 integer T 表示測試用例的數量。 每個測試用例的第一行包含一個由字母、數字和特殊字符組成的字符串 S。 Output:對於每個測試用例,在第一行打印包含 S 的所有字母的字符串 S1。在第二行打印包含所有數字的字符串 S2。 在第三行打印字符串 S3,其中包含 S 中存在的所有特殊字符。

約束:1<=T<=100 3<=長度(S)<=1000

示例:輸入:2 geeks01for02geeks03::! **Docoding123456789everyday## 輸出:geeksforgeeks 010203 !!! Docodingeveryday 123456789 **## 我的代碼:

enter code here
t=int(input())
a=[]
n=[]
st=[]
for _ in range(t):
    s=list(input())
    for i in s:
        if i.isalpha():
            a.append(i)
        
        elif i.isdigit():
            n.append(i)
        
        elif not i.isalnum():
            st.append(i)
    for i in a:
        print(i,end='')
    print('')    
    for i in n:
        print(i,end='')
    print('')    
    for i in s:
        print(i,end='')
    print('')   

我的代碼是分隔字母、數字但不是特殊字符任何人都可以告訴我我的 python 代碼有什么問題

def splitString(str): 


    alpha = "" 
    num = "" 
    special = "" 
    for i in range(len(str)): 
        if (str[i].isdigit()): 
            num = num+ str[i] 
        elif((str[i] >= 'A' and str[i] <= 'Z') or
            (str[i] >= 'a' and str[i] <= 'z')): 
            alpha += str[i] 
        else: 
            special += str[i] 

    print(alpha) 
    print(num ) 
    print(special) 

t=int(input())
for i in range(t):
    s = input()
    splitString(s)

在最后一個打印特殊字符的 for 循環中,您將其循環到錯誤的列表中。 將其更改為

for i in st:
   print(i)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM