Получить длину строки

Я нашел следующий официальный пример matplotlib, который использует host_subplot для отображения нескольких y-осей и всех разных меток в одной легенде. Обходной путь не требуется. Лучшее решение, которое я нашел до сих пор. http://matplotlib.org/examples/axes_grid/demo_parasite_axes2.html

from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA
import matplotlib.pyplot as plt

host = host_subplot(111, axes_class=AA.Axes)
plt.subplots_adjust(right=0.75)

par1 = host.twinx()
par2 = host.twinx()

offset = 60
new_fixed_axis = par2.get_grid_helper().new_fixed_axis
par2.axis["right"] = new_fixed_axis(loc="right",
                                    axes=par2,
                                    offset=(offset, 0))

par2.axis["right"].toggle(all=True)

host.set_xlim(0, 2)
host.set_ylim(0, 2)

host.set_xlabel("Distance")
host.set_ylabel("Density")
par1.set_ylabel("Temperature")
par2.set_ylabel("Velocity")

p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
p3, = par2.plot([0, 1, 2], [50, 30, 15], label="Velocity")

par1.set_ylim(0, 4)
par2.set_ylim(1, 65)

host.legend()

plt.draw()
plt.show()

759
задан Forge 3 February 2017 в 15:11
поделиться

9 ответов

По состоянию на Swift 4

Это просто:

test1.count

по причинам.

(Благодаря Martin R)

По состоянию на Swift 2:

С Swift 2 Apple изменила глобальные функции на расширения протокола, расширения, которые соответствуют любому типу в соответствии с протоколом. Таким образом, новый синтаксис выглядит следующим образом:

test1.characters.count

(Спасибо JohnDifool за заголовки)

Начиная со Swift 1

Используйте счетные символы Метод:

let unusualMenagerie = "Koala 🐨, Snail 🐌, Penguin 🐧, Dromedary 🐪"
println("unusualMenagerie has \(count(unusualMenagerie)) characters")
// prints "unusualMenagerie has 40 characters"

прямо из Руководства Apple Swift

(обратите внимание, что для версий Swift более ранних, чем 1.2, вместо этого будет countElements(unusualMenagerie))

для вашего переменная, это будет

length = count(test1) // was countElements in earlier versions of Swift

Или вы можете использовать test1.utf16count

1233
ответ дан mginn 3 February 2017 в 15:11
поделиться
test1.characters.count

даст вам количество букв / цифр и т. Д. В вашей строке.

ex:

test1 = "StackOverflow"

print(test1.characters.count)

( печатает " 13 ")

1
ответ дан Andy Lebowitz 3 February 2017 в 15:11
поделиться

Прямо сейчас (в Swift 2.3), если вы используете:

myString.characters.count 

метод вернет тип «Distance», если вам нужен метод для возврата Integer, вы должны напечатать приведение следующим образом:

var count = myString.characters.count as Int
1
ответ дан Jesse 3 February 2017 в 15:11
поделиться

Если вы ищете более понятный способ получения длины извлечения строки, эта библиотека имеет множество расширений для встроенных классов Swift http://www.dollarswift.org/#length

Используя эту библиотеку, вы можете просто сделать "Some Str".length

-1
ответ дан Encore PTL 3 February 2017 в 15:11
поделиться

Swift 1.1

extension String {
    var length: Int { return countElements(self) }  // 
}
<час>

Swift 1.2

extension String {
    var length: Int { return count(self)         }  // 
}
<час>

Swift 2.0

extension String {
    var length: Int { return characters.count    }  // 
}
<час>

Свифт 4.2

extension String {
    var length: Int { return self.count }           
}
<час>
let str = "Hello"
let count = str.length    // returns 5 (Int)
59
ответ дан Leo Dabus 3 February 2017 в 15:11
поделиться

Если вы просто пытаетесь увидеть, является ли строка пустой или нет (проверка на длину 0), Swift предлагает простой метод логического теста на String

myString.isEmpty

Другая сторона этого Монета - это люди, спрашивающие в ObjectiveC, как спросить, была ли строка пустой, где ответ должен был проверить на длину 0:

NSString пусто

23
ответ дан Community 3 February 2017 в 15:11
поделиться

Обновление Swift 4 по сравнению со Swift 3

Swift 4 устраняет необходимость в массиве символов в String. Это означает, что вы можете напрямую вызывать count для строки без предварительного получения массива символов.

"hello".count                  // 5

В то время как в swift 3 вам нужно будет получить массив символов и затем подсчитать элемент в этом массиве. Обратите внимание, что этот следующий метод все еще доступен в swift 4.0, так как вы все еще можете вызвать characters для доступа к массиву символов данной строки

"hello".characters.count       // 5

Swift 4.0 также принимает Unicode 9 и теперь может интерпретировать кластеры графем. Например, если вы рассчитываете на смайликов, вы получите 1, а в Swift 3.0 вы можете получить больше, чем 1.

"                  
2
ответ дан Fangming 3 February 2017 в 15:11
поделиться

Для XCode 7.3 и Swift 2.2.

let str = "                  
7
ответ дан Tyler Long 3 February 2017 в 15:11
поделиться

В Swift 4 : если строка не содержит символов Юникода, используйте следующее

let str : String = "abcd"
let count = str.count // output 4

Если строка содержит символы Юникода, используйте следующее:

let spain = "España"
let count1 = spain.count // output 6
let count2 = spain.utf8.count // output 7
3
ответ дан Ashis Laha 3 February 2017 в 15:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: