স্ট্রিং অবজেক্টকে বুলিয়ান অবজেক্টে কীভাবে রূপান্তর করবেন?


324

কীভাবে Stringঅবজেক্টকে অবজেক্টে রূপান্তর করা যায় Boolean?


2
স্ট্রিংয়ের মান কত?
জেমস গুডউইন

2
স্ট্রিংটি কীভাবে বুলেয়ানে রূপান্তর করা উচিত সে সম্পর্কে আপনার প্রত্যাশা কী?
স্টিভ কুও

1
myvartypeboolean = !! ভ্যালুয়েটোকনকন্ট

উত্তর:


516

চেষ্টা করুন (আপনি কি ফলাফল ফলাফল টাইপ উপর নির্ভর করে):

Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");

সুবিধা:

  • বুলিয়ান: এটি বুলিয়ান এর নতুন উদাহরণ তৈরি করে না, সুতরাং কর্মক্ষমতা আরও ভাল (এবং কম আবর্জনা সংগ্রহ)। এটি দুটি Boolean.TRUEবা দুটি উদাহরণ পুনরায় ব্যবহার করে Boolean.FALSE
  • বুলিয়ান: কোনও উদাহরণের প্রয়োজন নেই, আপনি আদিম প্রকারটি ব্যবহার করেন।

সরকারী ডকুমেন্টেশন জাভাদোকে রয়েছে


আপডেট:

অটোবক্সিংও ব্যবহার করা যেতে পারে তবে এর পারফরম্যান্স ব্যয় রয়েছে।
আমি কেবল তখনই এটি ব্যবহার করার পরামর্শ দিই যখন আপনি নিজেকে কাস্ট করতে হয়, যখন কাস্টটি এড়ানো যায় না তখন।


1
বুলিয়ান 2 কে কীভাবে অটো-আনবক্স করা হবে বুলেন 2-কে মূল্যায়ন করবেন না? পার্সবুলিয়ান পার্স করার ক্ষেত্রে আমি এখানে পার্থক্য দেখছি না।
অ্যালেক্স ফেইনম্যান

9
সবচেয়ে বড় সমস্যাটি হ'ল বুলিয়ান যখন এটির কিছু গ্রহণ করে তবে তা গ্রহণ করা উচিত নয় exception এটি "সত্য" হিসাবে দেখায় এমন কিছুর জন্য এটি সত্য ফিরে আসবে এবং অন্য কিছুর জন্য মিথ্যা ফিরে আসবে । যদি আপনি একটি যথাযথ বুলিয়ান মানের সাথে একটি স্ট্রিংয়ের মিলটি প্রয়োগ করার চেষ্টা করছেন তবে আপনাকে অবৈধ মামলা ম্যানুয়ালি ধরতে অতিরিক্ত যুক্তি যুক্ত করতে হবে।
ব্র্যান্ডন বেলভিন

আমি যদি ব্যবহার করিboolean boolean2 = Boolean.valueOf("true");
vipin8169

1
যদি স্ট্রিং অবজেক্টটি নাল হয় তবে বুলেটিয়ান.ভ্যালুওফ (স্ট্রিং) মিথ্যা ফিরবে ut
amit কেট

90

বুলিয়ান.ভালিউঅফ (স্ট্রিং) বা বুলিয়ান.পার্সবুলিয়ান (স্ট্রিং) ব্যবহার করার সময় আপনাকে যত্নবান হতে হবে । এর কারণ হ'ল স্ট্রিংটি "সত্য" এর সমান না হলে পদ্ধতিগুলি সর্বদা মিথ্যা হয়ে যাবে (কেস উপেক্ষা করা হবে)।

উদাহরণ স্বরূপ:

Boolean.valueOf("YES") -> false

সেই আচরণের কারণে আমি বুলিয়ানতে যে স্ট্রিংটি অনুবাদ করা উচিত তা একটি নির্দিষ্ট বিন্যাস অনুসরণ করে তা নিশ্চিত করার জন্য কিছু ব্যবস্থা যুক্ত করার পরামর্শ দেব।

এই ক্ষেত্রে:

if (string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false")) {
    Boolean.valueOf(string)
    // do something   
} else {
    // throw some exception
}

9
এটি আমি দেখেছি সেরা উদাহরণ এবং বুলিয়ান প্রকারের সাথে কী শুরু করা উচিত ছিল। অবৈধ বুলিয়ান মানটির জন্য একটি ব্যতিক্রম নিক্ষেপ করা অনেকগুলি অ্যাপ্লিকেশনের জন্য গুরুত্বপূর্ণ।
ব্র্যান্ডন বেলভিন

2
কোনও সত্যই সত্য নয়। এখানে পার্সবুলিয়ান পাবলিক স্ট্যাটিক বুলিয়ান পার্সবুলিয়ান (স্ট্রিং) এর রিটার্ন ((গুলি! নাল) && s.equalsIgnoreCase ("সত্য")) এর অন্তর্নিহিত বাস্তবায়ন রয়েছে; }
বৈদ্যুতিনবাহী

হি ... আপনার যদি এই জাতীয় কোড লেখার দরকার হয় তবে আপনাকে বুলিয়ান.ভ্যালুওফ কল করার দরকার নেই। পরিবর্তে আপনি যদি সাধারণ বিবৃতিটি পুনর্গঠন করতে পারেন তবে এটি যা চান তা করবে ;-)

22
Boolean b = Boolean.valueOf(string);

মানটি bসত্য হয় যদি স্ট্রিংটি নাল এবং সমান true(কেসকে উপেক্ষা করে) না করে।


17

কেএলই-এর দুর্দান্ত উত্তরের পাশাপাশি আমরা আরও কিছু নমনীয় করতে পারি:

boolean b = string.equalsIgnoreCase("true") || string.equalsIgnoreCase("t") || 
        string.equalsIgnoreCase("yes") || string.equalsIgnoreCase("y") || 
        string.equalsIgnoreCase("sure") || string.equalsIgnoreCase("aye") || 
        string.equalsIgnoreCase("oui") || string.equalsIgnoreCase("vrai");

(জ্লাজোর উত্তর দ্বারা অনুপ্রাণিত ... :-))



9

ঠিক আছে, 2018 সালের জানুয়ারীর মতো, এপাচের ব্যবহারের জন্য এটির সেরা উপায় BooleanUtils.toBoolean

এটি স্ট্রিংয়ের মতো যেকোন বুলিয়ানকে বুলেয়ানে রূপান্তর করবে, যেমন ওয়াই, হ্যাঁ, সত্য, এন, না, মিথ্যা ইত্যাদি will

সত্যিই সহজ!


4
public static boolean stringToBool(String s) {
        s = s.toLowerCase();
        Set<String> trueSet = new HashSet<String>(Arrays.asList("1", "true", "yes"));
        Set<String> falseSet = new HashSet<String>(Arrays.asList("0", "false", "no"));

        if (trueSet.contains(s))
            return true;
        if (falseSet.contains(s))
            return false;

        throw new IllegalArgumentException(s + " is not a boolean.");
    }

আমার স্ট্রিংটি বুলিয়ান রূপান্তর করার উপায়।


3
String[] values= new String[]{"y","Y","n","N","Yes","YES","yes","no","No","NO","true","false","True","False","TRUE","FALSE",null};
for(String booleanStr : values){
    System.out.println("Str ="+ booleanStr +": boolean =" +BooleanUtils.toBoolean(booleanStr));
}

ফলাফল:

Str =N: boolean =false
Str =Yes: boolean =true
Str =YES: boolean =true
Str =yes: boolean =true
Str =no: boolean =false
Str =No: boolean =false
Str =NO: boolean =false
Str =true: boolean =true
Str =false: boolean =false
Str =True: boolean =true
Str =False: boolean =false
Str =TRUE: boolean =true
Str =FALSE: boolean =false
Str =null: boolean =false

বুলিয়ান ইউটিলস কী?
james.garriss

1
org.apache.commons.lang3.BooleanUtils অ্যাপাচি কমন্স ল্যাং এপিআই থেকে।
ধনা

প্লাস সমস্ত ব্যবহারের কেস সংগ্রহের জন্য প্রচেষ্টা।
গৌরব

1

এটি আমি এটি করেছিলাম:

"1##true".contains( string )

আমার ক্ষেত্রে বেশিরভাগই হয় 1 বা সত্য। আমি ডিভাইডার হিসাবে হ্যাশ ব্যবহার করি।


0

একটি স্ট্রিংয়ের বুলিয়ান মান পেতে, এটি ব্যবহার করে দেখুন:

public boolean toBoolean(String s) {
    try {
        return Boolean.parseBoolean(s); // Successfully converted String to boolean
    } catch(Exception e) {
        return null; // There was some error, so return null.
    }
}

যদি কোনও ত্রুটি হয় তবে তা শূন্য হবে। উদাহরণ:

toBoolean("true"); // Returns true
toBoolean("tr.u;e"); // Returns null

5
আপনি কি এই চেষ্টা করেছেন? :) parseBoolean(String s)জাভাডোক অনুসারে একটি ব্যতিক্রম ছুঁড়ে না।
আবিষ্ট

0

নিয়মিত ভাব প্রকাশ করবেন না কেন?

public static boolean toBoolean( String target )
{
    if( target == null ) return false;
    return target.matches( "(?i:^(1|true|yes|oui|vrai|y)$)" );
}

0

আমরা এই সমস্যাটি সহজ করার জন্য সয়ুজ-টু লাইব্রেরি তৈরি করেছি (এক্সকে Y তে রূপান্তর করুন)। এটি অনুরূপ প্রশ্নের জন্য কেবলমাত্র এসও উত্তরগুলির একটি সেট। এই জাতীয় সমস্যাটির জন্য লাইব্রেরিটি ব্যবহার করা অদ্ভুত হতে পারে, তবে এটি সত্যই অনেকগুলি অনুরূপ ক্ষেত্রে সহায়তা করে।

import io.thedocs.soyuz.to;

Boolean aBoolean = to.Boolean("true");

দয়া করে এটি পরীক্ষা করে দেখুন - এটি খুব সাধারণ এবং অন্যান্য অনেক দরকারী বৈশিষ্ট্য রয়েছে


-3

পরিদর্শন http://msdn.microsoft.com/en-us/library/system.boolean.parse.aspx

এটি আপনাকে কী করবে তার একটি ধারণা দেবে।

এটি আমি জাভা ডকুমেন্টেশন থেকে পেয়েছি :

পদ্ধতি বিশদ

parseBoolean

public static boolean parseBoolean(String s)

স্ট্রিং আর্গুমেন্টকে বুলিয়ান হিসাবে পার্স করে। ফিরিয়ে দেওয়া বুলিয়ান মানটির সত্য উপস্থাপন করে যদি স্ট্রিং আর্গুমেন্টটি না থাকেnull এবং সমান হয়, ক্ষেত্রে উপেক্ষা করে "true

পরামিতি:

s - বুলিয়ান উপস্থাপনাযুক্ত স্ট্রিংকে বিশ্লেষণ করতে হবে

রিটার্নস: স্ট্রিং আর্গুমেন্টের দ্বারা প্রতিনিধিত্ব করা বুলিয়ান

যেহেতু: 1.5


1
যদিও প্রশ্নের পাঠ্য সুস্পষ্ট নয়, এটি জাভা সম্পর্কে একটি প্রশ্ন। কমপক্ষে এটি সেভাবে ট্যাগ হয়েছে। এই উত্তর মানুষকে বিভ্রান্ত করতে পারে।
paulo.albuquerque

-3

আপনি সরাসরি সিস্টেম শ্রেণীর দ্বারা যে কোনও স্ট্রিংয়ের সমান বুলেয়ান মান সেট করতে এবং এটিকে যে কোনও জায়গায় অ্যাক্সেস করতে পারেন ..

System.setProperty("n","false");
System.setProperty("y","true");

System.setProperty("yes","true");     
System.setProperty("no","false");

System.out.println(Boolean.getBoolean("n"));   //false
System.out.println(Boolean.getBoolean("y"));   //true   
 System.out.println(Boolean.getBoolean("no"));  //false
System.out.println(Boolean.getBoolean("yes"));  //true

1
এটি একটি স্ট্রিংকে বুলিয়ান রূপান্তরিত করার একটি অত্যন্ত হ্যাকি প্রস্তাব এবং কেবল কোনও বুদ্ধি নেই।
1330
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.