04-カンマ区切りデータを操ろう †カンマ区切りファイル(csv?)って簡単なデータを保存するときによく使うけど、 Java編 †Javaではjava.util.StringTokenizer?クラスを使います。 ★ソース import java.util.StringTokenizer;
public class StringTokenizerTest{
public static void main(String args[]){
//例えばこんなデータがありました
String str = "45,54,134,6,33,761,45,135,512,631,13";
System.out.println(str);
//カンマ区切りのTokenizerを作成
StringTokenizer st = new StringTokenizer(str, ",");
//データ数だけint配列を作成
int data[] = new int[st.countTokens()];
//データをintに変換してコピー
int i = 0;
int sum = 0;
while (st.hasMoreTokens()) {
data[i] = Integer.parseInt(st.nextToken());
sum += data[i];
i++;
}
//表示
for(int j=0;j<data.length;j++){
System.out.println(j + " : " + data[j]);
}
System.out.println("sum : " + sum);
}
}
★実行結果 E:\Java>java StringTokenizerTest 45,54,134,6,33,761,45,135,512,631,13 0 : 45 1 : 54 2 : 134 3 : 6 4 : 33 5 : 761 6 : 45 7 : 135 8 : 512 9 : 631 10 : 13 sum : 2369 PHP編 †PHPらしく関数一発でOKです。 ★ソース <?php
//例えばこんなデータがありました
$str = '45,54,134,6,33,761,45,135,512,631,13';
echo($str.'<br>');
//配列に変換
$data = explode(',', $str);
$sum = 0;
//配列表示・合計計算
foreach($data as $k => $d){
echo($k.' : '.$d.'<br>');
$sum += $d;
}
//合計表示
echo('sum : '.$sum.'<br>');
?>
★実行結果 45,54,134,6,33,761,45,135,512,631,13 0 : 45 1 : 54 2 : 134 3 : 6 4 : 33 5 : 761 6 : 45 7 : 135 8 : 512 9 : 631 10 : 13 sum : 2369 ASP.NET編 †.NETも一発で変換OKです。 ★ソース <html>
<script language="C#" runat="server">
private void Button1_Click(object sender, EventArgs e){
String[] arrStr = Text1.Text.Split(',');
Repeater1.DataSource = arrStr;
Repeater1.DataBind();
}
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>カンマ区切りデータ</title>
</head>
<body>
<form runat="server">
<asp:TextBox id="Text1" width="300" runat="server" text="45,54,134,6,33,761,45,135,512,631,13" />
<asp:Button id="Button1" runat="server" onClick="Button1_Click" text="実行" /><br />
<asp:Repeater id="Repeater1" runat="server">
<ItemTemplate><%# Container.DataItem %><br /></ItemTemplate>
</asp:Repeater>
</form>
</body>
</html>
★実行結果 45,54,134,6,33,761,45,135,512,631,13 [実行] 45 54 134 6 33 761 45 135 512 631 13 感想・質問等どうぞ † |