স্ট্রিংটি উরিতে রূপান্তর করুন


177

আমি কীভাবে জাভাতে একটি স্ট্রিংকে উরিতে রূপান্তর করতে পারি (অ্যান্ড্রয়েড)? অর্থাৎ,

String myUrl = "http://stackoverflow.com";

মাইউরি = ???;

উত্তর:


400

আপনি parseস্ট্যাটিক পদ্ধতিটি থেকে ব্যবহার করতে পারেনUri

Uri myUri = Uri.parse("http://stackoverflow.com")

4
আমি এই সমাধানটি চেষ্টা করেছি তবে এটি নিয়ে আমার সমস্যা আছে। প্রথম উরিটি ইউআরআইতে পরিবর্তন করা প্রয়োজন (যদি এটি জাভা ডটকম প্যাকেজ থেকে হয়)। দ্বিতীয় এটিতে "পার্স" কনস্ট্রাক্টর নেই। আমি কী ভুল করছি সে সম্পর্কে আপনার কি ধারণা আছে?
জর্জেন কে।

2
Uriএকটি parseপদ্ধতি বিকাশকারী.অ্যান্ড্রয়েড . com/ references/ android/ net/ Uri.html সহ একটি বর্গ রয়েছে । এখানে একটা হল URIবর্গ developer.android.com/reference/java/net/URI.html একটি ছাড়া parseপদ্ধতি। সুতরাং সঠিক ক্লাসটি ব্যবহার করা হয় Uri। আপনার সঠিক আমদানি রয়েছে তা নিশ্চিত করুন
চেচেনসন

1
@ সিচেনসন ইউরি আরও বেশি কেন সঠিক হওয়া উচিত? ইউআরআই দিয়ে আপনি কেবল createপদ্ধতিটি ব্যবহার করতে পারেন । এটি উরির মতো ব্যবহার করা সহজ। তাহলে উরি থেকে আপনার কী লাভ?
কাবা 713

সেটা ঠিক. ভুল আমদানি আমার বিরক্তিকর সমস্যাগুলির মধ্যে একটি।
ওমিড.এন

34

আমি কেবল java.net প্যাকেজটি ব্যবহার করছি । এখানে আপনি নিম্নলিখিত করতে পারেন:

String myUrl = "http://stackoverflow.com";
URI myURI = new URI(myUrl);

ইউআরআই উরির থেকে পৃথক।
আলী আলাও

7

আপনি যদি কোটলিন এবং কোটলিন অ্যান্ড্রয়েড এক্সটেনশন ব্যবহার করছেন তবে এটি করার একটি দুর্দান্ত উপায় আছে।

val uri = myUriString.toUri()

আপনার প্রকল্পে কোটলিন এক্সটেনশনগুলি ( কেটিএক্স ) যুক্ত করতে আপনার অ্যাপ্লিকেশন মডিউলের বিল্ড.gradle এ নিম্নলিখিতগুলি যুক্ত করুন

  repositories {
    google()
}

dependencies {
    implementation 'androidx.core:core-ktx:1.0.0-rc01'
}

3

আপনি নীচে প্রদর্শিত হিসাবে Uri.parse () ব্যবহার করে একটি স্ট্রিংকে একটি উরিতে পার্স করতে পারেন :

Uri myUri = Uri.parse("http://stackoverflow.com");

নীচে আপনি কীভাবে আপনার সদ্য নির্মিত উরিকে একটি অন্তর্নিহিত অভিপ্রায় ব্যবহার করতে পারবেন তার একটি উদাহরণ। ব্যবহারকারীদের ফোনে একটি ব্রাউজারে দেখতে।

// Creates a new Implicit Intent, passing in our Uri as the second paramater.
Intent webIntent = new Intent(Intent.ACTION_VIEW, myUri);

// Checks to see if there is an Activity capable of handling the intent
if (webIntent.resolveActivity(getPackageManager()) != null){
    startActivity(webIntent);
}

এনবি: অ্যান্ড্রয়েডের ইউআরআই এবং উরির মধ্যে পার্থক্য রয়েছে ।


-1

আপনি ইউআরআই দিয়ে কি করতে যাচ্ছেন?

উদাহরণস্বরূপ আপনি যদি এইচটিটিপিগেট দিয়ে কেবল এটি ব্যবহার করতে চলেছেন তবে এইচটিটিপিগেট ইনস্ট্যান্সটি তৈরি করার সময় আপনি সরাসরি স্ট্রিংটি ব্যবহার করতে পারেন।

HttpGet get = new HttpGet("http://stackoverflow.com");

2
তবে উদাহরণস্বরূপ android.widget.ImageView.setImageURIহবে না - সুতরাং এটি একটি সম্পূর্ণ বৈধ প্রশ্ন।
মার্টিন

1
আসলে এটি প্রশ্নের উত্তর দেয় না
জর্জেন কে।

-1

জাভা পার্সার ইন java.net.URIইউআরআই যদি পুরোপুরি তার মানগুলিতে এনকোড না করে থাকে তবে ব্যর্থ হতে চলেছে। উদাহরণস্বরূপ, বিশ্লেষণ করতে চেষ্টা করুন: http://www.google.com/search?q=cat|dog। উল্লম্ব বারের জন্য একটি ব্যতিক্রম নিক্ষেপ করা হবে।

urllib একটি স্ট্রিংকে একটিতে রূপান্তর করা সহজ করে তোলে java.net.URI। এটি প্রাক-প্রক্রিয়া করবে এবং ইউআরএল থেকে মুক্তি পাবে।

assertEquals("http://www.google.com/search?q=cat%7Cdog",
    Urls.createURI("http://www.google.com/search?q=cat|dog").toString());
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.