Как получить значение в строке после специального символа [closed]

Имели ту же самую проблему с экземпляром календаря.

Неверный код:

Calendar myCalendar = Calendar.getInstance();

for (int days = 0; days < daysPerWeek; days++) {
    myCalendar.add(Calendar.DAY_OF_YEAR, 1);

    // In the next line lies the error
    Calendar newCal = myCalendar;
    calendarList.add(newCal);
}

Вам нужно создать НОВЫЙ объект календаря, который можно выполнить с помощью calendar.clone();

Calendar myCalendar = Calendar.getInstance();

for (int days = 0; days < daysPerWeek; days++) {
    myCalendar.add(Calendar.DAY_OF_YEAR, 1);

    // RIGHT WAY
    Calendar newCal = (Calendar) myCalendar.clone();
    calendarList.add(newCal);

}
-8
задан rmaddy 5 August 2019 в 16:10
поделиться

3 ответа

Две опции (существуют больше):

  1. Scanner

    let str = "123456Z789456123"
    let scanner = Scanner(string: str)
    var output : NSString?
    scanner.scanUpToCharacters(from: .letters, into: nil)
    scanner.scanCharacters(from: .alphanumerics, into: &output)
    print(output! as String)
    
  2. Регулярное выражение для поиска первого символа нецифры

    let str = "123456Z789456123"
    let range = str.range(of: "\\D", options: .regularExpression)!
    let output = str[range.lowerBound...]
    
1
ответ дан 6 September 2019 в 19:18
поделиться
var str = "123456Z789456123"
let characterSet = CharacterSet(charactersIn: "ZKUD")
let firstIndex = str.firstIndex { characterSet.contains([110].unicodeScalars.first!) }
let substr = str[firstIndex!...]

Или расширение использования:

var str = "123456Z789456123"        // output: Z789456123

extension String {

    func strip(before characterSet: CharacterSet) -> String {
        if let firstIndex = self.firstIndex(where: { characterSet.contains([111].unicodeScalars.first!) }) {
            return String(self[firstIndex...])
        }
        return self
    }

    func stripBeforeLetters() -> String {
        return strip(before: .letters)
    }

}

let substr = str.strip(before: CharacterSet(charactersIn: "ZKUD"))
let anotherSubstr = str.stripBeforeLetters()
-1
ответ дан 6 September 2019 в 19:18
поделиться

Вот краткая острота:

let subStr = String(str.drop { [110].isNumber })

Это было бы отбрасывание символы с начала строки, пока они - цифры путем проверки или .isNumber или .isWholeNumber свойства Character.

-1
ответ дан 6 September 2019 в 19:18
поделиться
Другие вопросы по тегам:

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