int String::compareTo(const String& s) const { size_t size = min(m_len, s.m_len); size_t i = 0; while(i < size && s.charAt(i) == charAt(i)) { ++i; } if(i >= size) { if(m_len < s.m_len)return -1; else if(m_len > s.m_len){ return 1; } else return 0; } else { if(tolower(charAt(i)) < tolower(s.charAt(i))) return -1; else return 1; } }
boolean Clock::parseDate(String t) { // dd/mm/yyyy int d; int m; int y; if (t.length() != 10) return false; if (t.charAt(2) != '/' || t.charAt(5) != '/') return false; d=t.substring(0,2).toInt(); m=t.substring(3,5).toInt(); y=t.substring(6,10).toInt(); if (d ==0 || m==0 || y==0) return false; //Todo adjust for local time? set(y,m,d,hour(),minute(),second()); return true; }
void ID_action(RuleContext _localctx, int actionIndex) { switch (actionIndex) { case 0: String text = getText(); if ( Character.isUpperCase(text.charAt(0)) ) setType(TOKEN_REF); else setType(RULE_REF); break; } }
/** * Precondition: m_originalURL and m_queryString are set * Postcondition: Output is false and we are redirecting OR * m_rewrittenURL is set and m_queryString is updated if needed */ bool RequestURI::rewriteURL(const VirtualHost *vhost, Transport *transport, const std::string &pathTranslation, const std::string &sourceRoot) { bool qsa = false; int redirect = 0; std::string host = transport->getHeader("host"); m_rewrittenURL = m_originalURL; if (vhost->rewriteURL(host, m_rewrittenURL, qsa, redirect)) { m_rewritten = true; if (qsa && !m_queryString.empty()) { m_rewrittenURL += (m_rewrittenURL.find('?') < 0) ? "?" : "&"; m_rewrittenURL += m_queryString; } if (redirect) { if (m_rewrittenURL.substr(0, 7) != s_http && m_rewrittenURL.substr(0, 8) != s_https) { PrependSlash(m_rewrittenURL); } transport->redirect(m_rewrittenURL.c_str(), redirect, "rewriteURL"); return false; } splitURL(m_rewrittenURL, m_rewrittenURL, m_queryString); } m_rewrittenURL = String( Util::canonicalize(m_rewrittenURL.c_str(), m_rewrittenURL.size()), AttachString); if (!m_rewritten && m_rewrittenURL.charAt(0) == '/') { // A un-rewritten URL is always relative, so remove prepending / m_rewrittenURL = m_rewrittenURL.substr(1); } // If the URL refers to a folder but does not end // with a slash, then we need to redictect String url = m_rewrittenURL; if (!url.empty() && url.charAt(url.length() - 1) != '/') { if (virtualFolderExists(vhost, sourceRoot, pathTranslation, url)) { url += "/"; m_rewritten = true; String queryStr; m_rewrittenURL = m_originalURL; m_rewrittenURL += "/"; if (!m_queryString.empty()) { m_rewrittenURL += "?"; m_rewrittenURL += m_queryString; } if (m_rewrittenURL.substr(0, 7) != s_http && m_rewrittenURL.substr(0, 8) != s_https) { PrependSlash(m_rewrittenURL); } transport->redirect(m_rewrittenURL.c_str(), 301, "rewriteURL"); return false; } } return true; }
void InternetButton::playNote(String note, int duration){ int noteNum = 0; int octave = 5; int freq = 256; //if(9 - int(command.charAt(1)) != null){ char octavo[5]; String tempString = note.substring(1,2); tempString.toCharArray(octavo,5); octave = atoi(octavo); //} if(duration != 0){ duration = 1000/duration; } switch(note.charAt(0)){ case 'C': noteNum = 0; break; case 'D': noteNum = 2; break; case 'E': noteNum = 4; break; case 'F': noteNum = 5; break; case 'G': noteNum = 7; break; case 'A': noteNum = 9; break; case 'B': noteNum = 11; break; case 'R': // Rest note octave = -1; break; default: break; //return -1; } // based on equation at http://www.phy.mtu.edu/~suits/NoteFreqCalcs.html and the Verdi tuning // fn = f0*(2^1/12)^n where n = number of half-steps from the reference frequency f0 freq = float(256*pow(1.05946,( 12.0*(octave-4) +noteNum))); // C4^ (2^1/12)^ 12 half-steps in an octave ^how many extra half-steps within that octave, 0 for a C tone(D0,int(freq),duration); delay(duration); noTone(D0); //return freq; }
bool TheThingsUno::sendCommand(String cmd, String value, int waitTime) { debugPrintLn("Sending: " + cmd + " with value " + value); modemStream->print(cmd + " "); for (int i = 0; i < value.length(); i++) modemStream->print(String(value.charAt(i), HEX)); modemStream->println(); return waitForOK(waitTime); }
public int longestValidParentheses(String s) { Stack<Integer> st = new Stack<Integer>(); int maxLen = 0; int curLen = 0; for(int i = 0; i < s.length();i++) { if(s.charAt(i) == '(') { st.push(curLen); curLen = 0; } else if (s.charAt(i) == ')') { if(st.isEmpty()) { curLen = 0; } else { curLen = curLen + st.pop() + 2; if(curLen > maxLen) maxLen = curLen; } } } return maxLen; }
int64_t HHVM_FUNCTION(ezmlm_hash, const String& addr) { unsigned int h = 5381; int str_len = addr.length(); for (int i = 0; i < str_len; i++) { h = (h + (h << 5)) ^ ((unsigned long)tolower(addr.charAt(i))); } h = (h % 53); return (int64_t)h; }
int AsiMS2000::isQueryCommand(String command) { for(int i = 0; i < command.length(); i++) { if(command.charAt(i) == '?') { return true; } } return false; }
void jumpwireIo::parseSocketIo(String frame){ if(frame.charAt(0)=='3'){ if(debug){ Serial.print(" ok: received pong (round trip time = "); Serial.print(millis() - pingsent); Serial.println("ms)"); Serial.println(); } }else if((frame.charAt(0)=='4')&&(frame.charAt(1)=='2')){ //pass TXT frame to the next. frame.remove(0,2); parseJumpwireIo(frame); }else{ if(debug){ Serial.print("Unknown socket.io frame "); Serial.println(frame); } } }
void ATTDevice::sendParam(String& param) { for(unsigned int i = 0; i < param.length(); i++) { char toSend = param.charAt(i); //if(toSend == ';') // _stream->print("\;"); //else _stream->print(toSend); } }
int VirtuinoEsp8266_WebServer::getCommandPin(String aCommand){ char p1= aCommand.charAt(1); char p2= aCommand.charAt(2); String s="-1"; if (isDigit(p1) && isDigit(p2)) { s=""; s.concat(p1); s.concat(p2); } return s.toInt(); }
boolean isScramble(String s1, String s2) { if(s1.equals(s2)) return true; boolean[][][] scrambled = new boolean[s1.length()][s2.length()][s1.length() + 1]; for(int i = 0; i < s1.length(); i++) for(int j = 0; j < s2.length(); j++){ scrambled[i][j][0] = true; scrambled[i][j][1] = s1.charAt(i) == s2.charAt(j); } for(int i = s1.length() - 1; i >= 0 ; i--) for(int j = s2.length() - 1; j >= 0; j--) for(int n = 2; n <= Math.min(s1.length() - i, s2.length() - j); n ++) for(int m = 1; m < n; m++){ scrambled[i][j][n] |= scrambled[i][j][m] && scrambled[i + m][j + m][n - m] || scrambled[i][j + n - m][m] && scrambled[i + m][j][n - m]; if(scrambled[i][j][n]) break; } return scrambled[0][0][s1.length()]; }
void PlayerManagementSessionImplementation::parseBanDuration(const String& duration) { StringTokenizer tokenizer(duration); int durationInSeconds = 0; try { while(tokenizer.hasMoreTokens()) { String token; tokenizer.getStringToken(token); if(token.length() < 2) throw Exception(); char timeframe = token.charAt(token.length() - 1); token = token.subString(0, token.length() - 1); int units = Integer::valueOf(token); int seconds = 0; switch(timeframe) { case 'y': seconds = 60 * 60 * 24 * 365; break; case 'm': seconds = 60 * 60 * 24 * 30; break; case 'd': seconds = 60 * 60 * 24; break; case 'h': seconds = 60 * 60; break; case 'M': seconds = 60; break; default: throw Exception(); break; } durationInSeconds += (units * seconds); } banExpiration = durationInSeconds + time(0); if(banReason.isEmpty()) sendBanReason(); else showBanSummary(); } catch(Exception& e) { sendBanDuration(); } }
String HexString::Encode(const String& str){ char tmp[3] = { 0 }; String ret; for (int i = 0; i < str.length(); i++) { unsigned char c = str.charAt(i); sprintf(tmp, "%02x", c); ret += tmp; } return ret; }
void rn2483::sendEncoded(String input) { char working; char buffer[3]; for(int i=0; i<input.length(); i++) { working = input.charAt(i); sprintf(buffer, "%02x", int(working)); _serial.print(buffer); } }
bool WiFiDriver::sendAtCommand(String command, char *response) { char tmpStr[5]; Serial.println("send " + command); Serial3.print(command); String str = Serial3.readString(); // FOR DEBUG PURPOSES for(int i = 0; !((str.charAt(i) == '\r') && (str.charAt(i+1) == '\n')); i++) { sprintf(tmpStr, "%02X ", (str.charAt(i) & 0x00FF)); Serial.print(tmpStr); } Serial.print("\r\n"); // END DEBUG if (str.startsWith("OK") > 0) { strcpy(response, "OK "); unsigned int length = 2; while (str.length() > length) { sprintf(tmpStr, "%02X", (str.charAt(length) & 0x00FF)); strcat(response, tmpStr); length++; } Serial.println(response); return true; } else { strcpy(response, "ERROR "); sprintf(tmpStr, "%02X", (str.charAt(5) & 0x00FF)); strcat(response, tmpStr); Serial.println(response); return false; } }
bool ProjectData::checkValidString(const String&str) { for(int i=0; i<str.length(); i++) { char c = str.charAt(i); if(!((c>='0' && c<='9') || (c>='a' && c<='z') || (c>='A' && c<='Z') || c=='_' || c=='-' || c=='.' || c==',' || c==' ')) { return false; } } return true; }
void TM16XX::setDisplayToString(const String string, const word dots, const byte pos, const byte font[]) { int stringLength = string.length(); for (int i = 0; i < displays - pos; i++) { if (i < stringLength) { sendChar(i + pos, font[string.charAt(i) - 32], (dots & (1 << (displays - i - 1))) != 0); } else { break; } } }
public int atoi(String str) { int i = 0, n = str.length(); while (i < n && Character.isWhitespace(str.charAt(i))) i++; int sign = 1; if (i < n && str.charAt(i) == '+') { i++; } else if (i < n && str.charAt(i) == '-') { sign = -1; i++; } int num = 0; while (i < n && Character.isDigit(str.charAt(i))) { int digit = Character.getNumericValue(str.charAt(i)); if (num > maxDiv10 || num == maxDiv10 && digit >= 8) { return sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE; } num = num * 10 + digit; i++; } return sign * num; }
hx::Object *runObject(CppiaCtx *ctx) { String val = strVal->runString(ctx); BCR_CHECK; int idx = a0->runInt(ctx); BCR_CHECK; if (CODE) return val.charCodeAt(idx).mPtr; else return Dynamic(val.charAt(idx)).mPtr; }
int singToMe(String args) { for (int i = 0; i < args.length(); i++) { char oneNote = args.charAt(i); //I can't figure out what space is being translated into (it's not space or +) so z = rest if (oneNote == 'z') { delay(tempo); } else { playNote(oneNote, tempo); } } }
public int strStr(String haystack, String needle) { if(haystack==null || needle == null || needle.length()==0) return 0; if(needle.length()>haystack.length()) return -1; for(int i=0;i<=haystack.length()-needle.length();i++) { boolean successFlag = true; for(int j=0;j<needle.length();j++) { if(haystack.charAt(i+j)!=needle.charAt(j)) { successFlag = false; break; } } if(successFlag) return i; } return -1; }
void PusherClient::parseMessageMember(const String& message, const String& name, String& value) { //name must be in the "name" format int memberNameStart = message.indexOf(name); if (memberNameStart == -1) { value = ""; return; } int memberDataStart = memberNameStart + name.length(); char currentCharacter; do { memberDataStart++; currentCharacter = message.charAt(memberDataStart); } while (currentCharacter == ' ' || currentCharacter == ':' || currentCharacter == '\"'); int memberDataEnd = memberDataStart; bool isString = message.charAt(memberDataStart-1) == '\"'; if (!isString) { do { memberDataEnd++; currentCharacter = message.charAt(memberDataEnd); } while (currentCharacter != ' ' && currentCharacter != ','); } else { char previousCharacter; currentCharacter = ' '; do { memberDataEnd++; previousCharacter = currentCharacter; currentCharacter = message.charAt(memberDataEnd); } while (currentCharacter != '"' || previousCharacter == '\\'); } value = message.substring(memberDataStart, memberDataEnd); value.replace("\\\"", "\""); }
void ZoneServerImplementation::changeLoginMessage(const String& motd) { Locker locker(_this.getReferenceUnsafeStaticCast()); File* file; FileWriter* writer; String finalMOTD = ""; try { file = new File("conf/motd.txt"); writer = new FileWriter(file); for(int i = 0; i < motd.length(); i++) { if(i+1 < motd.length()) { char currentLetter = motd.charAt(i); char nextLetter = motd.charAt(i+1); if(currentLetter == '\\' && nextLetter == 'n') { finalMOTD += "\n"; i++; } else { finalMOTD += currentLetter; } } else { finalMOTD += motd.charAt(i); } } writer->write(finalMOTD); writer->close(); } catch (FileNotFoundException& e) { file = NULL; writer = NULL; } loginMessage = finalMOTD; delete writer; delete file; }
public String longestPalindrome(String s) { int len = s.length(); int[][] DP = new int[len][len]; // length = 1 for(int i = 0; i < len; i++){ DP[i][i] = 1; } // length = 2 for(int i = 0; i < len-1; i++){ if(s.charAt(i) == s.charAt(i+1)){ DP[i][i+1] = 2; } } // length > 2 for(int l = 3; l <= len; l++){ for(int i = 0; i <= len-l; i++){ int j = i + l -1; if(s.charAt(i) == s.charAt(j) && DP[i+1][j-1] != 0){ DP[i][j] = DP[i+1][j-1]+2; } } } //find the longest one int longest = 0; int start = 0; int end = 0; for(int i = 0; i < len; i++){ for(int j = i; j < len; j++){ if(DP[i][j] > longest){ longest = DP[i][j]; start = i; end = j; } } } return s.substring(start, end+1); }
void EvalObjectData::o_setArray(CArrRef props) { for (ArrayIter it(props); !it.end(); it.next()) { String k = it.first(); if (!k.empty() && k.charAt(0) == '\0') { int subLen = k.find('\0', 1) + 1; String cls = k.substr(1, subLen - 2); String key = k.substr(subLen); if (cls == "*") cls = o_getClassName(); props->load(k, o_lval(key, Variant(), cls)); } } DynamicObjectData::o_setArray(props); }
void flashDotsAndDashes(String dotsAndDashes) { for (int i = 0; i < dotsAndDashes.length(); i++) { char dotOrDash = dotsAndDashes.charAt(i); if (dotOrDash == '.') { flash(dot); } else { flash(dash); } delay(dot); // gap between dots and dashes of a letter } delay(dash - dot); // gap between letters of a word }
/// /// Imprime cadena /// void LedMax::printAsciiString(int initPos, int finalPos, String cadena) { int tam = cadena.length(); bool dp = false; int ultimo = (tam <= finalPos-initPos) ? tam : finalPos-initPos; int offset = 0; for(int i=0; i <= ultimo; i++) { dp = false; if( (i<ultimo) && (cadena.charAt(i+1) == '.') ) dp = true; if(cadena.charAt(i) != '.') { printAsciiChar(initPos+i-offset, cadena.charAt(i), dp); } else { offset++; ultimo++; } } }
long Convert::toInt(String input) { boolean negative = false; long result = 0; //if number negative if(input.charAt(0) == 45) { input = input.substring(1); negative = true; } for (int i=0; i<input.length(); i++) { result = (result*10) + this->value(input.charAt(i)); } if(negative) result*=-1; return result; }