• ベストアンサー

半角全角文字が混ざった文字列の分割

半角と全角があ混ざった文字列があります。 "202号室:あいうえおかきくけこさしすせそたちつてと" これを半分に切りたいのです。 "202号室:あいうえおかきく" "けこさしすせそたちつてと" ↑この場合、202が半角であること。半分としたときに、 最後の'く'という文字がかけてしまわないことが条件なのです。 どなたかわかる方お教えください。。。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

//こんな感じなのかな・・ public class Wrap { public static int LenB(String s){ int len=s.length(); int lenb=0; for(int i=0;i<len;i++){ char c = s.charAt(i); lenb += (c < 256) ? 1 : 2; } return lenb; } public static void main(String[]args){ String str="202号室:あいうえおかきくけこさしすせそたちつてと"; int len=LenB(str); for(int i=0;i<len;i++){ String ss = str.substring(0,i+1); if(LenB(ss)>=len/2){ System.out.println(ss); System.out.println(str.substring(i+1)); break; } } } }

その他の回答 (1)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

C言語と違いJavaの文字列は内部でUNICODEを使っているので半角全角を意識しません。 なので、文字数で半分に分けたいのなら普通にString#length()で文字列長を求めて半分にすればOKです。