Как получить имя файла без расширения в Java?

Почти все примеры oauth в блогах, кажется, являются примерами фазы авторизации oauth, и ни один из них не фокусируется на том, как на самом деле делать запросы, когда они у вас есть, поскольку, как только вы поймете, как это работает, эта часть совершенно очевидна. Получить первоначальное понимание, к сожалению, довольно сложно.

Если вы просто пытаетесь получить доступ к своей учетной записи Twitter из скрипта или приложения для себя, вы можете получить токен доступа (называемый ключом в библиотеке Python oauth) и секретный ключ на dev.twitter.com по адресу внизу страницы настроек вашего приложения под заголовком Токен доступа .

import oauth2 as oauth
import json

CONSUMER_KEY = "your app's consumer key"
CONSUMER_SECRET = "your app's consumer secret"
ACCESS_KEY = "your access token"
ACCESS_SECRET = "your access token secret"

consumer = oauth.Consumer(key=CONSUMER_KEY, secret=CONSUMER_SECRET)
access_token = oauth.Token(key=ACCESS_KEY, secret=ACCESS_SECRET)
client = oauth.Client(consumer, access_token)

timeline_endpoint = "https://api.twitter.com/1.1/statuses/home_timeline.json"
response, data = client.request(timeline_endpoint)

tweets = json.loads(data)
for tweet in tweets:
    print tweet['text']

В этом примере используется библиотека python lib python-oauth2 , которая, к сожалению, называется библиотекой OAuth, а не библиотекой OAuth2.

Если вы хотите разрешить другим людям авторизовать их учетную запись для использования вашим приложением, вам нужно реализовать танец перенаправления, где вы просите щебетать пару токен / секретный запрос, а затем перенаправить пользователя на страницу авторизации щебета с помощью Этот токен запроса, они входят и авторизуют токен и перенаправляются обратно в ваше приложение, затем вы обмениваете токен запроса на токен доступа и секретную пару, которые вы можете хранить и использовать для выполнения запросов, как описано выше.

Пример трехстороннего OAuth в Twitter в Readme на http://github.com/simplegeo/python-oauth2 , кажется, охватывает то, что необходимо сделать

243
задан james.garriss 3 February 2016 в 06:33
поделиться

3 ответа

Если вы, как и я, предпочли бы использовать некоторый библиотечный код, где они, вероятно, подумали обо всех особых случаях, например, что происходит, если вы передадите null или точки в путь, но не в имени файла, вы можете использовать следующее:

import org.apache.commons.io.FilenameUtils;
String fileNameWithOutExt = FilenameUtils.removeExtension(fileNameWithExt);
401
ответ дан 23 November 2019 в 03:09
поделиться

Самый простой способ - использовать регулярное выражение.

fileNameWithOutExt = "test.xml".replaceFirst("[.][^.]+$", "");

Вышеупомянутое выражение удалит последнюю точку, за которой следует один или несколько символов. Вот базовый модульный тест.

public void testRegex() {
    assertEquals("test", "test.xml".replaceFirst("[.][^.]+$", ""));
    assertEquals("test.2", "test.2.xml".replaceFirst("[.][^.]+$", ""));
}
144
ответ дан 23 November 2019 в 03:09
поделиться

См. Следующую тестовую программу:

public class javatemp {
    static String stripExtension (String str) {
        // Handle null case specially.

        if (str == null) return null;

        // Get position of last '.'.

        int pos = str.lastIndexOf(".");

        // If there wasn't any '.' just return the string as is.

        if (pos == -1) return str;

        // Otherwise return the string, up to the dot.

        return str.substring(0, pos);
    }

    public static void main(String[] args) {
        System.out.println ("test.xml   -> " + stripExtension ("test.xml"));
        System.out.println ("test.2.xml -> " + stripExtension ("test.2.xml"));
        System.out.println ("test       -> " + stripExtension ("test"));
        System.out.println ("test.      -> " + stripExtension ("test."));
    }
}

, которая выводит:

test.xml   -> test
test.2.xml -> test.2
test       -> test
test.      -> test
53
ответ дан 23 November 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: