Swift 程序查找字符串中最长的单词


在 Swift 中,字符串是一系列字符。因此,字符串可以包含小单词和大单词。因此,使用以下方法,我们可以找到字符串中最大的单词。

  • 使用 component() 方法

  • 使用用户定义的方法

示例

Input String: "Rabbit run fast"

Output String: "Rabbit"

这里,字符串中所有给定单词中最大的单词是“Rabbit”。

方法 1:使用 component() 方法

components() 方法用于根据给定分隔符从给定字符串创建子字符串数组。因此,这里我们使用 components(separatedBy:.whitespaces) 方法,并使用 .wihitespaces 作为参数来创建一个子字符串数组,其中子字符串由空格字符分隔。然后,我们将数组元素的长度相互比较以找到最长的单词。

语法

str.components(separatedBy:.whitespaces)

这里,component() 方法在 str 字符串上调用,并返回一个由空格分隔的子字符串数组。

算法

  • 步骤 1 − 创建一个函数,该函数以输入字符串作为参数并返回最长的单词。

  • 步骤 2 − 在函数内部,我们通过使用 component() 函数将字符串划分为子字符串来创建子字符串数组。其中子字符串由空格字符分隔。

  • 步骤 3 − 创建一个空字符串来存储结果。

  • 步骤 4 − 运行一个 for-in 循环来迭代每个子字符串。并将每个子字符串的长度与当前子字符串进行比较。

  • 步骤 5 − 如果当前子字符串长度是最长长度,则将此子字符串添加到结果字符串中。

  • 步骤 6 − 返回结果字符串。

  • 步骤 7 − 创建一个字符串。

  • 步骤 8 − 调用函数并将字符串作为参数传递给它

  • 步骤 9 − 显示输出。

示例

import Foundation
import Glibc

// Function to find the longest word in the given string
func longestWord(str: String) -> String {
   let wordArray = str.components(separatedBy: .whitespacesAndNewlines)
   var longWord = ""
    
   for w in wordArray {
      if w.count > longWord.count {
         longWord = w
      }
   }
   
   return longWord
}

// Input string
let myString = "Swift support String"
let resWord = longestWord(str: myString)
print("Longest word in the \"\(myString)\" is:\(resWord)")

输出

Longest word in the "Swift support String" is: support

方法 2:使用用户定义函数

我们可以使用用户定义的函数在字符串中找到最长的单词。这里我们创建一个函数,它接收输入字符串并返回字符串中存在的最长单词。

算法

  • 步骤 1 − 创建一个函数,该函数以输入字符串作为参数并返回最长的单词。

  • 步骤 2 − 在函数内部,我们创建两个变量来存储迭代每个单词时的当前单词以及跟踪最长单词。

  • 步骤 3 − 运行一个 for-in 循环来迭代每个子字符串。

  • 步骤 4 − 检查当前字符是否为空格或换行符,因为它表示单词的结尾。

  • 步骤 5: − 在这种情况下,我们将当前单词的长度与最长单词进行比较。

  • 步骤 6 − 将最长单词存储在变量中

  • 步骤 7 − 再次重新检查以确保该单词是最长单词。

  • 步骤 8 − 返回结果单词。

  • 步骤 9 − 创建一个字符串。

  • 步骤 10 − 调用函数并将字符串作为参数传递给它

  • 步骤 11 − 显示输出。

示例

在以下 Swift 程序中,我们将找到字符串中最长的单词。为此,我们将定义一个函数,该函数以字符串作为输入。此函数在 for-in 循环的帮助下迭代字符串的每个字符,并检查字符是否为空格或换行符,因为它表示单词的结尾。在这种情况下,我们将 currentWord 和 longestWord 的长度进行比较,并在必要时更新 longestWord。然后我们将 currentWord 重置为空。如果字符不是空格或换行符,则将其附加到 currentWord 以生成当前单词。在所有之后,我们再次重新检查以确认结果单词是最长单词。最后返回最长单词。

import Foundation
import Glibc

func getLongestWord(str: String) -> String {
   var longestWord = ""
   var currentWord = ""
    
   for c in str {
      if c.isWhitespace || c.isNewline {
         if currentWord.count > longestWord.count {
            longestWord = currentWord
         }
         currentWord = ""
      } else {
         currentWord.append(c)
      }
   }
    
   if currentWord.count > longestWord.count {
      longestWord = currentWord
   }
    
   return longestWord
}

let myString = "Rohan lover Swift programming"
let resWord = getLongestWord(str:myString)
print("The longest word from the \" \(myString)\":\(resWord)")

输出

The longest word from the " Rohan lover Swift programming": programming

结论

因此,这就是我们在字符串中查找最长单词的方法。查找最长单词对于文本分析、数据处理、游戏开发、用户输入验证、语言学习等很有用。您也可以根据需要使用最长单词。这里两种方法都返回准确的结果。

更新于: 2023年6月15日

549 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告