coding girl
coding girl

Reputation: 183

Jaden Casing String: How to return a sentence string with capitalised words?

I want to create a function that takes a short text and returns it in the so-called Jaden Case mode where each word's first letter is a capital (best reference I could find).

For example "Hi, I'm twenty years old" should return "Hi I'm Twenty Years Old".

I have tried to solve this problem on my own, but the letter after the apostrophe sign becomes a capital whereas it shouldn't..

My attempt:

def toJadenCase(string):
    for letter in string:
        if letter == "\'" :
            letter[+1].lowercase()
        else:
            return string.title()
    return string

Upvotes: 7

Views: 4381

Answers (2)

Jayashree Dhar
Jayashree Dhar

Reputation: 43

It can be done in another two methods:

Method#1

import string

def tojaden(jadencase):
    return string.capwords(jadencase)

print(tojaden("I'm iron man"))

Method#2

def jadencase(str):
    s1 = str.split()
    capWords = []
    for word in s1:
        caps = word.capitalize()
        capWords.append(caps)
    final_string = " ".join(capWords)
    print(final_string)


jadencase("it ain't me")

Upvotes: 0

Chris
Chris

Reputation: 29742

Use str.split and str.capitalize:

s = "Hi, I'm twenty years old"
' '.join([i.capitalize() for i in s.split()])

Output:

"Hi, I'm Twenty Years Old"

Upvotes: 11

Related Questions