Enumeration class input modification possible?
1 次查看(过去 30 天)
显示 更早的评论
Hello fellow Matlab users.
I am having a simple enumeration class to hold some predifinded allowed values as shown below
class (Sealed = true) myMode
enumeration
CLRWRITE
MAXHOLD
MINHOLD
AVERAGE
VIEW
BLANK
end
end
I am reading a file where the above values are writen with special characters or spaces for example "CLR/WRITE" or "Max Hold". So far i am just using regexprep externally to properly format the string before enumeration.
val = "CLR/WRITE";
val = regexprep(val, '[\W]', '');
mode = myMode(val);
I also implemented a static method "fromString" in the class that implements the regexprep code above. But still fills clunky.
myTrace.fromString("CLR/WRITE")
methods (Static = true)
function out = fromString(val)
val = convertCharsToStrings(val{:});
if isstring(val)
val = regexprep(val, '[\W]', '');
out = myMode(val);
end
end
end
I am curious if there is a way for the enumeration class to direclty accept "CLR/WRITE" as an input. Without access to a constructor, it seems imposible to implement, but I am open to suggestions. Supperclass definition maybe?
2 个评论
回答(1 个)
Dirk Engel
2025-1-27
A static method is the correct approach from an OOP perspective. In other programming languages, a static method for creating an object from a string is usally called "parse", but "fromString" is fine, too.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!