簡単な質問がありました。次のコードを取得しました
String chapterNumber = "14.2.1";
「chapterNumber」から次のような文字列を取得するにはどうすればよいですか
String mainChapterNumber = "14";
編集: 最初のポイントまでの int/String (私には関係ありません) 内のすべての数値が必要です
簡単な質問がありました。次のコードを取得しました
String chapterNumber = "14.2.1";
「chapterNumber」から次のような文字列を取得するにはどうすればよいですか
String mainChapterNumber = "14";
編集: 最初のポイントまでの int/String (私には関係ありません) 内のすべての数値が必要です
必要な入力文字列の最初の部分だけである場合は、次のようにする必要があります
String mainChapterNumber = chapterNumber.split("\\.", 2)[0];
split
( )の 2 番目の引数は、最初に出現した;2
でのみ分割する必要があることを示します。この 2 番目の引数を指定しなかった場合に発生するすべてのインスタンスで分割するよりも高速です。.
.
関連ドキュメント
以下を使用してください:
String mainChapterNum = chapterNumber.substring(0, chapterNumber.indexOf("."));
これは、インデックス番号 0 に配置された最初の文字から始まり、"." の最初の出現の前で終わる、現在の章番号の部分文字列を返します。
String chapterNumber = "1.2.1";
int index = chapterNumber.indexOf(".");
String mainChapterNumber = chapterNumber.substring(0,index);
これには複数の方法があります。私がお勧めする最も簡単な方法は、部分文字列と indexOf: を使用することです。
String result = chapterNumber.substring(0, chapterNumber.indexOf("."));
それを行う別の方法は次のようになります。
String result = chapterNumber.split("\\.")[0];
String mainChapterNumber = chapterNumber.substring(0,chapterNumber.indexOf("."));
あなたが実際に何かを試したという証拠がないため、コードを提供する代わりに提案を行います。
文字列のインデックスをいじってみてください。最初のドットのインデックスを見つけてから、substring
メソッドを使用して、原点とその発生の間に部分文字列を保持します。
念のため、Guavaのスプリッターを使用した別のソリューション:
String mainChapterNumber = Iterables.get(Splitter.on('.').split(chapterNumber), 0);
これには、正規表現機構を使用しないという利点があります(軽量ではないため、受け入れられているソリューションをループで使用しないでください)。
以下のようにしてみてください...
String chapterNumber = "1.2.1";
String[] getdt = chapterNumber.split("\\.");
String mainChapterNumber = getdt[0];