# Practical string method applications in various scenarios
# 1. Phone number validation and formatting
def format_phone_number(phone):
# Remove all non-digit characters
digits_only = ""
for char in phone:
if char.isdigit():
digits_only += char
# Format according to Indonesian standard
if len(digits_only) == 13 and digits_only.startswith("62"):
return f"+{digits_only[:2]}-{digits_only[2:5]}-{digits_only[5:9]}-{digits_only[9:]}"
elif len(digits_only) == 12 and digits_only.startswith("08"):
return f"{digits_only[:4]}-{digits_only[4:8]}-{digits_only[8:]}"
else:
return "Invalid number format"
phone_numbers = ["081234567890", "+6281234567890", "0812-3456-7890"]
for phone in phone_numbers:
formatted = format_phone_number(phone)
print(f"'{phone}' -> '{formatted}'")
# 2. Extract information from filename
def analyze_filename(filename):
# Separate name and extension
if "." in filename:
name, ext = filename.rsplit(".", 1)
ext = ext.lower()
else:
name, ext = filename, ""
# Analyze file type
image_exts = ["jpg", "jpeg", "png", "gif", "bmp"]
doc_exts = ["pdf", "doc", "docx", "txt"]
code_exts = ["py", "js", "html", "css", "java"]
if ext in image_exts:
file_type = "Image"
elif ext in doc_exts:
file_type = "Document"
elif ext in code_exts:
file_type = "Code"
else:
file_type = "Unknown"
return {
"name": name,
"extension": ext,
"type": file_type,
"length": len(filename)
}
files = ["photo.jpg", "report.pdf", "script.py", "data", "image.PNG"]
for file in files:
info = analyze_filename(file)
print(f"{file}: {info}")
# 3. Simple log file parser
def parse_log_entry(log_line):
# Format: [TIMESTAMP] LEVEL: MESSAGE
if not log_line.strip():
return None
# Extract timestamp
if log_line.startswith("[") and "]" in log_line:
end_bracket = log_line.index("]")
timestamp = log_line[1:end_bracket]
rest = log_line[end_bracket + 1:].strip()
else:
timestamp = "Unknown"
rest = log_line.strip()
# Extract level
if ":" in rest:
level, message = rest.split(":", 1)
level = level.strip()
message = message.strip()
else:
level = "INFO"
message = rest
return {
"timestamp": timestamp,
"level": level,
"message": message
}
log_entries = [
"[2023-09-17 10:30:15] ERROR: Database connection failed",
"[2023-09-17 10:30:16] INFO: Retrying connection",
"WARNING: Low disk space",
""
]
print("\nLog parsing results:")
for entry in log_entries:
parsed = parse_log_entry(entry)
if parsed:
print(f"Time: {parsed['timestamp']}, Level: {parsed['level']}, Message: {parsed['message']}")
# 4. URL slug generator from title
def create_slug(title):
# Convert to lowercase and replace spaces with dash
slug = title.lower()
# Replace non-alphanumeric characters with dash
clean_slug = ""
for char in slug:
if char.isalnum():
clean_slug += char
elif char == " " or not char.isalnum():
if clean_slug and clean_slug[-1] != "-":
clean_slug += "-"
# Remove dashes at start and end
return clean_slug.strip("-")
titles = [
"Learn Python for Beginners",
"Tips & Tricks Programming",
"Data Science: Complete Guide",
"Machine Learning 101"
]
print("\nSlug generation:")
for title in titles:
slug = create_slug(title)
print(f"'{title}' -> '{slug}'")