Czy Ant ma jakiś sposób na manipulowanie ciągiem wielkich/małych liter/captialize/uncaptialize string? Spojrzałem na PropertyRegex, ale nie sądzę, że te dwie ostatnie są możliwe. Czy to coś jeszcze?Funkcje ciągu znaków?
Odpowiedz
można użyć zadania script i używać języka skryptowego jsr223 obsługiwane jak javascript, jruby, jython ... zrobić swój ciąg obsługi
From this thread, należy użyć Ant <script>
zadanie:
<target name="capitalize">
<property name="foo" value="This is a normal line that doesn't say much"/>
<!-- Using Javascript functions to convert the string -->
<script language="javascript"> <![CDATA[
// getting the value
sentence = project.getProperty("foo");
// convert to uppercase
lowercaseValue = sentence.toLowerCase();
uppercaseValue = sentence.toUpperCase();
// store the result in a new property
project.setProperty("allLowerCase",lowercaseValue);
project.setProperty("allUpperCase",uppercaseValue);
]]> </script>
<!-- Display the values -->
<echo>allLowerCase=${allLowerCase}</echo>
<echo>allUpperCase=${allUpperCase}</echo>
</target>
Wyjście
D:\ant-1.8.0RC1\bin>ant capitalize
Buildfile: D:\ant-1.8.0RC1\bin\build.xml
capitalize:
[echo] allLowerCase=this is a normal line that doesn't say much
[echo] allUpperCase=THIS IS A NORMAL LINE THAT DOESN'T SAY MUCH
BUILD SUCCESSFUL
Aktualizacja za komentarz WarrenFaith do oddzielenia skrypt do innego celu i przekazać właściwość od zwany targetpowrotem do wywołującego cel
Korzystanie antcallback ze słoika ant-contrib
<target name="testCallback">
<antcallback target="capitalize" return="allUpperCase">
<param name="param1" value="This is a normal line that doesn't say much"/>
</antcallback>
<echo>a = ${allUpperCase}</echo>
</target>
i capitalise
zadanie zastosowania przekazany w param1
zatem
<target name="capitalize">
<property name="foo" value="${param1}"/>
wyjście końcowe
[echo] a = THIS IS A NORMAL LINE THAT DOESN'T SAY MUCH
Wierzę, że to działa tylko z jdk1.6 +. – kfox
Chociaż jest łatwiej z Javą 6, to działa z Javą 5, ale musisz podać implementację swojego języka skryptowego, np. Rhino dla JavaScript. –
@JoseK: Czy wiesz, w jaki sposób mogę oddzielić skrypt od celu? Kiedy to zrobię, właściwość zmieniła się w celu, ale później przywrócona zostanie stara wartość. Moim problemem jest to, że chcę uczynić główny cel tak małym, jak to tylko możliwe, aby nawet nie-programista mógł zmieniać właściwości. Dzięki – WarrenFaith
- 1. Dostępne funkcje do usuwania znaków z niektórych pozycji ciągu znaków
- 2. Funkcje zwracające wskaźnik znaków
- 3. Usuwanie znaków z ciągu znaków
- 4. grep bez ciągu znaków
- 5. Tłumaczenie przypisanego ciągu znaków
- 6. Pierwsze 10 znaków ciągu?
- 7. Nieokreślona stała ciągu znaków
- 8. Opcje inicjalizacji ciągu znaków
- 9. Parsowanie ciągu znaków
- 10. Dopasowywanie sekwencji kolejnych znaków w ciągu znaków
- 11. Usuń n znaków od początku ciągu znaków
- 12. Zliczanie liczby znaków w ciągu znaków
- 13. Formatowanie ciągu znaków na 10 znaków
- 14. Zastępowanie wielu znaków w ciągu znaków
- 15. Usuwanie znaków niealfanumerycznych z ciągu znaków
- 16. Usuwanie wielu typów znaków z ciągu znaków
- 17. Usuwanie białych znaków w ciągu znaków
- 18. Usuwanie białych znaków w ciągu znaków XML
- 19. Zastępowanie wiodących znaków w ciągu znaków
- 20. Sprawdzanie znaków specjalnych w ciągu znaków
- 21. Zamień wiele znaków w ciągu znaków (XSLT)
- 22. Usuwanie zduplikowanych znaków z ciągu znaków
- 23. Usuwanie określonych znaków z ciągu znaków
- 24. Wyszukaj słowo w ciągu znaków
- 25. Zwracanie ciągu znaków z NSURLRequest
- 26. zawaleniem spacje w ciągu znaków
- 27. Parsować krotkę z ciągu znaków?
- 28. Co {} robi w ciągu znaków?
- 29. pytania dotyczące źródła ciągu znaków?
- 30. znajdź zakres podciągów ciągu znaków
Zobacz także: http://stackoverflow.com/questions/7129672/uppercase-lowercase-capitalize-an-ant-property/7131195#7131195 –