mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: additional startsWith(), endsWith() string methods
- As the names describe, check if the string starts or ends with a particular value. Always true if the given text is empty or if the string is identical to the given text.
This commit is contained in:
@ -34,6 +34,8 @@ Description
|
||||
#include "int.H"
|
||||
#include "uint.H"
|
||||
#include "scalar.H"
|
||||
#include "Switch.H"
|
||||
#include "stringList.H"
|
||||
|
||||
using namespace Foam;
|
||||
|
||||
@ -166,6 +168,76 @@ int main(int argc, char *argv[])
|
||||
<< Foam::name("formatted >%08d<", val) << "\n";
|
||||
}
|
||||
|
||||
// test startsWith, endsWith methods
|
||||
{
|
||||
string empty; //;
|
||||
string input1 = "shorter input";
|
||||
string input2 = "longer input text";
|
||||
|
||||
stringList checks{"match", "long", "", "short", "text", "s", "l", "t"};
|
||||
|
||||
Info<< nl;
|
||||
Info<< "check startsWith:" << nl
|
||||
<< "~~~~~~~~~~~~~~~~~" << nl;
|
||||
|
||||
Info<<"input: " << empty << nl;
|
||||
for (const string& test : checks)
|
||||
{
|
||||
Info<< " startsWith(" << test << ") = "
|
||||
<< Switch(empty.startsWith(test)) << nl;
|
||||
}
|
||||
Info<<"input: " << input1 << nl;
|
||||
for (const string& test : checks)
|
||||
{
|
||||
Info<< " startsWith(" << test << ") = "
|
||||
<< Switch(input1.startsWith(test)) << nl;
|
||||
}
|
||||
Info<<"input: " << input2 << nl;
|
||||
for (const string& test : checks)
|
||||
{
|
||||
Info<< " startsWith(" << test << ") = "
|
||||
<< Switch(input2.startsWith(test)) << nl;
|
||||
}
|
||||
|
||||
|
||||
Info<< nl;
|
||||
Info<< "check endsWith:" << nl
|
||||
<< "~~~~~~~~~~~~~~~~~" << nl;
|
||||
|
||||
Info<<"input: " << empty << nl;
|
||||
for (const string& test : checks)
|
||||
{
|
||||
Info<< " endsWith(" << test << ") = "
|
||||
<< Switch(empty.endsWith(test)) << nl;
|
||||
}
|
||||
Info<<"input: " << input1 << nl;
|
||||
for (const string& test : checks)
|
||||
{
|
||||
Info<< " endsWith(" << test << ") = "
|
||||
<< Switch(input1.endsWith(test)) << nl;
|
||||
}
|
||||
Info<<"input: " << input2 << nl;
|
||||
for (const string& test : checks)
|
||||
{
|
||||
Info<< " endsWith(" << test << ") = "
|
||||
<< Switch(input2.endsWith(test)) << nl;
|
||||
}
|
||||
|
||||
Info<< nl;
|
||||
Info<< "check endsWith as applied to field names:" << nl
|
||||
<< "~~~~~~~~~~~~~~~~~" << nl;
|
||||
|
||||
string input3 = "field_0";
|
||||
string input4 = "_0";
|
||||
|
||||
Info<<input3 << " endsWith(\"_0\") = "
|
||||
<< Switch(input3.endsWith("_0")) << nl;
|
||||
|
||||
Info<<input4 << " endsWith(\"_0\") = "
|
||||
<< Switch(input4.endsWith("_0")) << nl;
|
||||
}
|
||||
|
||||
|
||||
Info<< "\nEnd\n" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user