Eclipse / Rename parameters in a project - java

I'd like to change the naming conventions of parameters. Until now we've used a "p"-prefix, but I think it isn't necessary and I would like to get rid of the prefix and also change the uppercase character which follows the "p" to a lowercase. Is this somehow possible to do in the whole project in "one run"?

To change the name of one parameter in the whole project in Eclipse do the following:
Click on the parameter.
press [alt] + [shift] + [R].
enter the new name.
press enter to accept the new name, it will change over the whole project. This also works on class names, methods etc.
I'm sorry, but this way you have to do this for all parameters again.

Another solution is to use File / Search. You can do a find and replace in all the files in the workspace. This accepts regular expressions as well.

Related

Regular expression to find System.out.print

I try to create one regular expression allows find all System.out.println or print inside all my java classes.
I need to delete all outputs.
Thanks.
"System\\.out\\.println"
use this regex and replace all with empty string.
Not exactly what you asked for but if you are using eclipse to do your development then this would be your best approach.
If you want to search in files: Ctrl+H and then choose tab File Search. Enter your search parameter and it shows all the files where sysout is used. Hope it helps...

Regex to dynamically ignore some parts of a given path

Consider that I have the following string which is a "complete path":
/A/B/C/D/E
And there is also the "simplified path" string:
/A/B/E
I have a situation where some parts of the string can be omitted and still be represent the full path. I know this is strange, but I can't change it.
Basically for this case, I need a regex to ignore the last two paths before the current path (dynamically as I have no specific information of them), to confirm that these two strings have a correlation.
The only thing I could came up with was:
Take the current path (([^\/]+$)) from both strings and compare.
Check in Java if the complete string contains the simplified one.
But I think there must be a cleaner way to do this.
I came up with the following solution:
Search string:
[^\/]+\/[^\/]+\/([^\/]+$)
Replace string: \1
Check it here
If both path point to the same file/directory then you could make use of the Files class.
It has a method Files#isSameFile to which you pass two Path instances and it would check if both files are pointing to the same file at your directory. This simple line would check if A/B/E/ and /A/B/C/D/E are actually the same directory.
System.out.println(Files.isSameFile(Paths.get("/A/B/C/D/E"), Paths.get("/A/B/E")));

Eclipse change case in regex find and replace

In Eclipse, I would like to be able to do a regex search and replace for some text and slightly modify it, changing the case of one of the letters. For example: find myVariable.getProperty() and change it to myVariable.property.
I can easily use myVariable.get(\w+)\(\) and replace it with myVariable.$1, but that results in myVariable.Property with the capital 'P'.
I believe this is possible with some regex engines, but I cannot find a way to do it within Eclipse.
I don't think eclipse supports that type of functionality. You would have to get "creative" and do things like:
Search: myVariable\.getP(\w+)\(\)
Replace: myVariable\.p(\1)
But according to regular-expresions.info (http://www.regular-expressions.info/replacecase.html), if you're open to editing your JSP file with a different text editor, there are programs that use other flavors of RegEx which can make your change.
Using your example, EditPad Lite for instance would allow your search:
Search: (myVariable\.)get(\w+)\(\)
And replace it with:
Replace: \1\L2
This would result in:
myVariable.getProperty()
to:
myVariable.property
In this case \L2 changes the contents of the second back reference to a lowercase version. \U2 would change it to uppercase. \I0 would capitalize the initial letter of each separated word in the string and \F0 would capitalize just the first letter of your string.
I've done similar things for small but repetitive changes where eclipse is not exactly equipped for the job. And then go back to eclipse when the change has gone through.

Best way to store words for given scenerio

I am working on Java project [Maven].
I am confused in one point. I don't know what is logiclaly corect.
Problem is as follows :-
Sentence is given, and from their I have extract some particular words.
Solution that I found
I make one regex and put in Constants class. Whenever I have to add more words, I simply appended words in regex.
This solves the problem.
I am confused here
I am thinking, if I put numbers of text files in resources folder where each text file denotes one regex expression.
REGEX = (?:A|B|C|D)
A, B, C, D = Word(String)
Is it a good idea ? If not please suggest any other.
Why would you save regex's in a text file? The fact that you're using a regex seems like an implementation detail that you would want to encapsulate (unless you want the significantly greater functionality but also overhead of supporting regexes).
Also, why do you need new files for each word? That seems like you could just have one file with a word per line that is all of the words you're interested in. This would be much more simple for a user to understand than 100 files with one regex per file.
As my understanding, you want to find some key words from the input string. And those key words could be extened according your requirments.
your current solution is to make this regex (?:A|B|C|D) in your Constant class, wheneveer it's required, you'll add more key words in this regex.
If my understanding is not wrong, maybe, one suggestion is to put this regex in your properties file, like this
REGEX = (?:city|Animal|plant|student)
if too long, it's could be like this
REGEX = (?:city|Animal|plant|student|car|computer|clothes|\
furnature|others)
Your second idea, if my understanding is not wrong, is to put the keywords as the file name, and those files are put in one resource folder. therefore, you could obtain those files name to compose the final regexp. If your regex are always fixed as the (?:A|B|C|D) format, then this solution is good & convenient. (Every time, you add one new keyword file, you don't need to modify any source code & property file)

How can I change the type of variable in the whole package with NetBeans?

I am programming in Java. I have a variable defines as long and it is working alright. I want to change it now so the variable everywhere thought the project is defined as BigInteger. Is there a way I can easily do this with NetBeans?
I think you have to do it manually (using Ctrl + v). You can use Edit -> Replace in Projects. Check "whole words", "match case" and set file pattern to *.java to find the places it occurs.

Categories