Example #1
1
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;
    }
}
Example #2
0
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;
}
Example #3
0
	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;
		}
	}
Example #4
0
/**
 * 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;
}
Example #6
0
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);
}
Example #7
0
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;
}
Example #8
0
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;
}
Example #9
0
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();
 }
Example #13
0
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();
	}
}
Example #15
0
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;
}
Example #16
0
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;
    }
}
Example #18
0
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;
}
Example #19
0
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;
}
Example #21
0
   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;
   }
Example #22
0
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);
    }
  }
}
Example #23
0
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);
}
Example #28
0
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
}
Example #29
0
///
/// 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++;
        }
    }
}
Example #30
-1
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;
}