2016-06-16 3 views
0

から私の問題は言葉スウィフト1.2、単語

私は必要な結果が

DisplayChar("asd",1) 

であり、それは「」

func DisplayChar(word : String, number : Int) -> String{ 
    let i: Int = count(word) 
    var result = 0 
    result = i - (i - number) 
    var str = "" 
    var j = 0 

    for j = 0; j < result; j++ { 
     str = str + word[j] 
    } 

    return str 
} 

DisplayChar("xyz", 2) 
+5

はなぜスウィフト1.2を使用していますか? – Alexander

+0

私の学校で使っています...... – ZiSean

答えて

-1
が表示されますから文字を取得する方法である文字をキャプチャ

スイフト文字列には、substringToIndexというメソッドがあり、"asd".substringToIndex(1)"a"を返します。

Swift 1.2で動作するかどうかはわかりませんが、

+0

残念ながら1.2では動作しません。 – Moritz

+0

しかし、私は部分文字列を使用したくない場合はどうしますか?その他の方法で?? – ZiSean

0

このコードは

let sentence = "Hello world" 
let characters = Array(sentence) 
print(characters[0]) // "H" 
+1

この[オンライン遊園地](http://www.tutorialspot.com/swift/try_swift.php)はまだ1.2です。唯一の問題は、サポートの変更をしていません...だから、すべての変更のために、コピーして、ページをリフレッシュし、実行する前に貼り付ける必要があります。 :p – Moritz

+0

ありがとう、私はまた、部分文字列を見つけることを試みる。 – ZiSean

+0

FUNC DisplayChar(ワード:文字列、数:INT) - >文字列{ LET結果= word.substringToIndex(予め(word.startIndex、数)) リターン結果 } DisplayChar( "XYZ"、2 ) – ZiSean

0

動作するはず働くかもしれthis answerでカップルに良い解決策は、以下の重複2つの良いものがあります。アレイ

let word = "test"  
var firstChar = Array(word)[0] // t 

(注:これは、UTF8またはASCIIエンコードされた文字列を想定しているが、それは学校のためにそうで結構です)に

変換し、あなた自身の拡張作成

まず、添え字を扱うStringの拡張子:

extension String { 

    subscript (i: Int) -> Character { 
    return self[self.startIndex.advancedBy(i)] 
    } 

    subscript (i: Int) -> String { 
    return String(self[i] as Character) 
    } 

    subscript (r: Range<Int>) -> String { 
    let start = startIndex.advancedBy(r.startIndex) 
    let end = start.advancedBy(r.endIndex - r.startIndex) 
    return self[Range(start ..< end)] 
    } 
} 

次に、あなただけ使用することができます。

let word = "test"  
var firstChar = word[0] // t 
+0

FUNCのDisplayChar(::文字列、番号のInt単語)を更新@ZiSean 2には、添字が使用できないエラー – ZiSean

+0

今では、すべての文字を 'number'まで出力し、文字の完全な配列を返すように見えます。あなたの最初の投稿から、1文字だけを印刷するように見えます。その場合、print文はループ内にあってはなりません。 'DisplayChar'が印刷して返すと期待していることを記述できますか? – Carter

+0

画面でユーザキー(「XYZ」、2) 結果がディスプレイにユーザキー(「XYZ」、1) 結果はX – ZiSean