mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 15:32:46 +00:00 
			
		
		
		
	AK: Make String::count not use strstr and take a StringView
This was needlessly copying StringView arguments, and was also using strstr internally, which meant it was doing a bunch of unnecessary strlen calls on it. This also moves the implementation to StringUtils to allow API consistency between String and StringView.
This commit is contained in:
		
							parent
							
								
									4e40eaf34c
								
							
						
					
					
						commit
						6d2b003b6e
					
				
					 5 changed files with 19 additions and 17 deletions
				
			
		|  | @ -427,6 +427,20 @@ String to_titlecase(StringView const& str) | |||
|     return builder.to_string(); | ||||
| } | ||||
| 
 | ||||
| // TODO: Benchmark against KMP (AK/MemMem.h) and switch over if it's faster for short strings too
 | ||||
| size_t count(StringView const& str, StringView const& needle) | ||||
| { | ||||
|     if (needle.is_empty()) | ||||
|         return str.length(); | ||||
| 
 | ||||
|     size_t count = 0; | ||||
|     for (size_t i = 0; i < str.length() - needle.length() + 1; ++i) { | ||||
|         if (str.substring_view(i).starts_with(needle)) | ||||
|             count++; | ||||
|     } | ||||
|     return count; | ||||
| } | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Idan Horowitz
						Idan Horowitz