ユーザーの入力単語から文字数を数えて表示しようとしています。文字を文字列に変更する方法はわかりましたが、文字数とともに["]"が表示されます。私はそれを数えて表示するだけです。例:ユーザー入力テスト、 手紙:カウント E:1、 S:1、 トン:2 (それがプログラムにすべきであるように表示するようにそれを得ることはできません) charcountに辞書内のキーの数:3ユーザーの入力から文字を数えようとしていますが、ユーザーの入力語だけでなく、[""]もカウントしています。
import Foundation
var myWord: [String] = [] //Array for word given by user
//var count = 0 //create a variable to hold the count for any matches
//get input from user - must use Objective C code since Swift 1+ doesn't have an input function (code used from Dawn Wick StudentTests code)
func input() -> String {
let keyboard = NSFileHandle.fileHandleWithStandardInput()
let inputData = keyboard.availableData
let strData = NSString(data: inputData, encoding: NSUTF8StringEncoding)!
return strData.stringByTrimmingCharactersInSet(NSCharacterSet.newlineCharacterSet())
}
print("Enter a word: ", terminator: "")
var userWord = input() // get users word
myWord.append(userWord) //Append myWord array with user input
//Summarize character counts
var charCount: [Character : Int] = [:]
//Summarize occurences of each character
for char in myWord.description.characters{
//if char in Dictionary, increment count, otherwise add it
if let count = charCount[char] {
charCount[char] = count + 1 //increment count
}else {
charCount[char] = 1 //add char to dictionary
}
}
print("THE WORD \(myWord) CONTAINS:", terminator: " ");
print("\nLETTERS\t\t COUNT\n", terminator: " ");
for (char, count) in charCount {
print("\n \(char) \t \(count)", terminator: " ");
}
print("\nNumber OF KEYS IN CHARCOUNTS DICTIONARY: \(charCount.count)", terminator: " ");
私は非常に助けに感謝します。 ありがとうございます。
一つのアプローチはに正規表現を使用することですあなたの数える前にすべての文字を抽出します。もう1つの方法は、マップを使用して52文字をハードコードし、その数が追加される前にこのマップに文字が存在するかどうかを確認することです。 – Mox
私はこのクラスの基礎を素早く学び、学ぶのが新しいです。私は、あなたが話している選択肢について何の手掛かりも持っていません。私はやってみたいです。 – Naro