---
title: CharacterSet
framework: foundation
role: symbol
role_heading: Structure
path: foundation/characterset
---

# CharacterSet

A set of Unicode character values for use in search operations.

## Declaration

```swift
struct CharacterSet
```

## Overview

Overview A CharacterSet represents a set of Unicode-compliant characters. Foundation types use CharacterSet to group characters together for searching operations, so that they can find any of a particular set of characters during a search. This type provides “copy-on-write” behavior, and is also bridged to the Objective-C NSCharacterSet class.

## Topics

### Getting Standard Character Sets

- [alphanumerics](foundation/characterset/alphanumerics.md)
- [capitalizedLetters](foundation/characterset/capitalizedletters.md)
- [controlCharacters](foundation/characterset/controlcharacters.md)
- [decimalDigits](foundation/characterset/decimaldigits.md)
- [decomposables](foundation/characterset/decomposables.md)
- [illegalCharacters](foundation/characterset/illegalcharacters.md)
- [letters](foundation/characterset/letters.md)
- [lowercaseLetters](foundation/characterset/lowercaseletters.md)
- [newlines](foundation/characterset/newlines.md)
- [nonBaseCharacters](foundation/characterset/nonbasecharacters.md)
- [punctuationCharacters](foundation/characterset/punctuationcharacters.md)
- [symbols](foundation/characterset/symbols.md)
- [uppercaseLetters](foundation/characterset/uppercaseletters.md)
- [whitespaces](foundation/characterset/whitespaces.md)
- [whitespacesAndNewlines](foundation/characterset/whitespacesandnewlines.md)

### Getting Character Sets for URL Encoding

- [urlFragmentAllowed](foundation/characterset/urlfragmentallowed.md)
- [urlHostAllowed](foundation/characterset/urlhostallowed.md)
- [urlPasswordAllowed](foundation/characterset/urlpasswordallowed.md)
- [urlPathAllowed](foundation/characterset/urlpathallowed.md)
- [urlQueryAllowed](foundation/characterset/urlqueryallowed.md)
- [urlUserAllowed](foundation/characterset/urluserallowed.md)

### Creating a Custom Character Set

- [init()](foundation/characterset/init().md)

### Creating and Managing Bitmap Representations

- [bitmapRepresentation](foundation/characterset/bitmaprepresentation.md)

### Inverting a Character Set

- [invert()](foundation/characterset/invert().md)
- [inverted](foundation/characterset/inverted.md)

### Combining Character Sets

- [formIntersection(_:)](foundation/characterset/formintersection(_:).md)
- [formSymmetricDifference(_:)](foundation/characterset/formsymmetricdifference(_:).md)
- [formUnion(_:)](foundation/characterset/formunion(_:).md)
- [hasMember(inPlane:)](foundation/characterset/hasmember(inplane:).md)
- [insert(charactersIn:)](foundation/characterset/insert(charactersin:)-2syuj.md)
- [intersection(_:)](foundation/characterset/intersection(_:).md)
- [invert()](foundation/characterset/invert().md)
- [isSuperset(of:)](foundation/characterset/issuperset(of:).md)
- [remove(charactersIn:)](foundation/characterset/remove(charactersin:)-3sayw.md)
- [subtracting(_:)](foundation/characterset/subtracting(_:).md)
- [symmetricDifference(_:)](foundation/characterset/symmetricdifference(_:).md)
- [union(_:)](foundation/characterset/union(_:).md)

### Adding Characters

- [insert(charactersIn:)](foundation/characterset/insert(charactersin:)-2syuj.md)

### Removing Characters

- [remove(charactersIn:)](foundation/characterset/remove(charactersin:)-3sayw.md)
- [subtracting(_:)](foundation/characterset/subtracting(_:).md)

### Testing Set Membership

- [hasMember(inPlane:)](foundation/characterset/hasmember(inplane:).md)
- [isSuperset(of:)](foundation/characterset/issuperset(of:).md)

### Comparing Character Sets

- [==(_:_:)](foundation/characterset/==(_:_:).md)

### Using Reference Types

- [NSCharacterSet](foundation/nscharacterset.md)
- [NSMutableCharacterSet](foundation/nsmutablecharacterset.md)

### Initializers

- [init(bitmapRepresentation:)](foundation/characterset/init(bitmaprepresentation:).md)
- [init(charactersIn:)](foundation/characterset/init(charactersin:)-87iva.md)
- [init(charactersIn:)](foundation/characterset/init(charactersin:)-87m2b.md)
- [init(charactersIn:)](foundation/characterset/init(charactersin:)-8tcll.md)
- [init(contentsOfFile:)](foundation/characterset/init(contentsoffile:).md)

### Instance Methods

- [contains(_:)](foundation/characterset/contains(_:).md)
- [insert(_:)](foundation/characterset/insert(_:).md)
- [insert(charactersIn:)](foundation/characterset/insert(charactersin:)-7urdg.md)
- [insert(charactersIn:)](foundation/characterset/insert(charactersin:)-803uz.md)
- [remove(_:)](foundation/characterset/remove(_:).md)
- [remove(charactersIn:)](foundation/characterset/remove(charactersin:)-1kqte.md)
- [remove(charactersIn:)](foundation/characterset/remove(charactersin:)-5td97.md)
- [subtract(_:)](foundation/characterset/subtract(_:).md)
- [update(with:)](foundation/characterset/update(with:).md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Decodable](swift/decodable.md)
- [Encodable](swift/encodable.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [ExpressibleByArrayLiteral](swift/expressiblebyarrayliteral.md)
- [Hashable](swift/hashable.md)
- [ReferenceConvertible](foundation/referenceconvertible.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [SetAlgebra](swift/setalgebra.md)

## See Also

### Characters

- [UnicodeScalar](swift/unicodescalar.md)
