2013-08-31 3 views
-2

Я получаю строку, которая содержит имя файла по расширению Cо спаренной для ех, как показано ниже ..Как извлечь определенную строку из строки переменной

String s = "abcdf.dat";// Now as shown file abcde having a .dat extension 

Теперь я хочу, чтобы сохранить имя файла только в другой строке, но не расширение, поэтому я хочу, чтобы сохранить в этом формате такие как-

String p= "abcdf"; //only file name please advise how to achieve this 
+1

Этот код даже не компилировать (если 'abcdf' не является объектом класса, который имеет открытое поле под названием' dat'). – dasblinkenlight

+0

Дубликат http://stackoverflow.com/questions/941272/how-do-i-trim-a-file-extension-from-a-string-in-java?lq=1 – bsd

+0

@dasblinkenlight OP может забыть написать 'String s =" abcdf.dat ";' –

ответ

1

Вы можете использовать split(String regex), чтобы получить имя.

String fileName = "abcdf.dat"; 
String name = fileName.split("\\.")[0]; // abcdf 
String ext = fileName.split("\\.")[1]; // dat 

Примечание:"\\." является регулярным выражением.

+3

Это не сработает, так как '.' должно быть экранировано. –

1

Использование String#split() метод.

String abcdf = "abcdf.dat"; 
String result= abcdf.split("\\.")[0]; 

. является мета характер, так что вам нужно, чтобы избежать его перед расщеплением.

0
String s = "abcdf.dat"; 

String start = StringUtils.substringBefore(s, "."); // returns "abcdf" 
+0

Что делать, если имя файла имеет более одной точки, например 'some.file.doc'? – Pshemo

1

Вы можете потребительных

String filename = s.substring(0, s.lastIndexOf(".")); 

Поскольку имя файла может содержать более чем одну точку (.), Поэтому до последней точки будет имя файла.

+0

Как насчет "filename.tar.gz"? – bsd

+0

@bsd эти (.tar.gz или .9.png и т. Д.) Являются исключительным случаем, когда вы можете продолжать проверять его прагматично. –

+1

@TarunDroid Мы не можем охватить все аспекты здесь. Мы даем некоторые подсказки, помогаем разрешить некоторые логические ошибки и т. Д. –

0
String p = s.substring(0, s.lastIndexOf(".")); 
0

Попробуйте один

String fileName = "abcdf.dat"; 

String name = fileName.split(java.util.regex.Pattern.quote("."))[0]; 
String ext = fileName.split(java.util.regex.Pattern.quote("."))[1]; 
Смежные вопросы