㈠ java解析txt里的數據
最簡單的辦法就是用Java中的BufferedReader來讀取,BufferedReader可以一行一行的讀。然後用String類的split方法按","把每行的數據分割成數組,然後數組里其它已經有創建一個Student對象包含的所有東東了。在循環的最後記得把創建出來的Student對象add到List中哦。
具體代碼上面幾位都粘出來了,我就不再重復了。純手打,希望樓主採納
㈡ java解析字元串
packagecom;
importjava.util.HashMap;
importjava.util.LinkedList;
importjava.util.List;
importjava.util.Map;
publicclassYuma
{
privateList<Map>analysisConfig(Stringconfig)
{
String[]arr=config.split(";");
Stringreg="([^\(]+)(\([^\)]*\))";
List<Map>list=newLinkedList<Map>();
for(inti=0;i<arr.length;i++)
{
Stringtmp=arr[i];
Map<String,String>map=newHashMap<String,String>();
map.put(tmp.replaceAll(reg,"$1"),tmp.replaceAll(reg,"$2"));
list.add(map);
}
returnlist;
}
publicstaticvoidmain(String[]args)
{
StringruleConfig="債券(0000,1200,1100);非標資產(0100);質押式回購(0123@質押式正回購,0123@質押式逆回購)";
Yumayuma=newYuma();
List<Map>list=yuma.analysisConfig(ruleConfig);
System.out.println(list);
}
}
㈢ java 代碼解析
你的第一個錯誤就是類沒有找到,原因是.java 文件名和類名不一致,仔細檢查一下吧,另外程序里本身還有一些錯誤,我已經改好了,代碼如下:
public class Example1_1 {
public static void main(String args[])
{
String arrStu[][]={{"20073401","王宏","女","18"},{"20073402","張華","女","19"},
{"20073403","劉鵬","女","20"},{"20073404","王秋月","女","22"}};
System.out.println("下面是列印結果\t學號\t姓名\t性別\t年齡");
for(int i=0;i<arrStu.length;i++)
{ System.out.println("第"+(i+1)+"行的所有元素:");
for (int j=0;j<arrStu[i].length;j++)
{ System.out.println(arrStu[i][j]+"\t");
}
System.out.println("\n");
}
}
}
㈣ java解析報文
ByteBuffer bb = ByteBuffer.wrap(data, offset, length);
if (bb.remaining() < MIN_HEADER_LENGTH) {
return this;
}
this.opCode = bb.get();
this.transactionId = bb.getInt();
按照這種節奏搞吧,這個很簡單的啊,拿到BYTEBUFFER以後,一點一點的處理byte。
㈤ Java解析json數據
一、 JSON (JavaScript Object Notation)一種簡單的數據格式,比xml更輕巧。
Json建構於兩種結構:
1、「名稱/值」對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。 如:
{
「name」:」jackson」,
「age」:100
}
2、值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)如:
{
「students」:
[
{「name」:」jackson」,「age」:100},
{「name」:」michael」,」age」:51}
]
}
二、java解析JSON步驟
A、伺服器端將數據轉換成json字元串
首先、伺服器端項目要導入json的jar包和json所依賴的jar包至builtPath路徑下(這些可以到JSON-lib官網下載:http://json-lib.sourceforge.net/)
然後將數據轉為json字元串,核心函數是:
public static String createJsonString(String key, Object value)
{
JSONObject jsonObject = new JSONObject();
jsonObject.put(key, value);
return jsonObject.toString();
}
B、客戶端將json字元串轉換為相應的javaBean
1、客戶端獲取json字元串(因為android項目中已經集成了json的jar包所以這里無需導入)
public class HttpUtil
{
public static String getJsonContent(String urlStr)
{
try
{// 獲取HttpURLConnection連接對象
URL url = new URL(urlStr);
HttpURLConnection httpConn = (HttpURLConnection) url
.openConnection();
// 設置連接屬性
httpConn.setConnectTimeout(3000);
httpConn.setDoInput(true);
httpConn.setRequestMethod("GET");
// 獲取相應碼
int respCode = httpConn.getResponseCode();
if (respCode == 200)
{
return ConvertStream2Json(httpConn.getInputStream());
}
}
catch (MalformedURLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
private static String ConvertStream2Json(InputStream inputStream)
{
String jsonStr = "";
// ByteArrayOutputStream相當於內存輸出流
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
// 將輸入流轉移到內存輸出流中
try
{
while ((len = inputStream.read(buffer, 0, buffer.length)) != -1)
{
out.write(buffer, 0, len);
}
// 將內存流轉換為字元串
jsonStr = new String(out.toByteArray());
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return jsonStr;
}
}
2、獲取javaBean
public static Person getPerson(String jsonStr)
{
Person person = new Person();
try
{// 將json字元串轉換為json對象
JSONObject jsonObj = new JSONObject(jsonStr);
// 得到指定json key對象的value對象
JSONObject personObj = jsonObj.getJSONObject("person");
// 獲取之對象的所有屬性
person.setId(personObj.getInt("id"));
person.setName(personObj.getString("name"));
person.setAddress(personObj.getString("address"));
}
catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return person;
}
public static List<Person> getPersons(String jsonStr)
{
List<Person> list = new ArrayList<Person>();
JSONObject jsonObj;
try
{// 將json字元串轉換為json對象
jsonObj = new JSONObject(jsonStr);
// 得到指定json key對象的value對象
JSONArray personList = jsonObj.getJSONArray("persons");
// 遍歷jsonArray
for (int i = 0; i < personList.length(); i++)
{
// 獲取每一個json對象
JSONObject jsonItem = personList.getJSONObject(i);
// 獲取每一個json對象的值
Person person = new Person();
person.setId(jsonItem.getInt("id"));
person.setName(jsonItem.getString("name"));
person.setAddress(jsonItem.getString("address"));
list.add(person);
}
}
catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
㈥ java 解析-字元串
/*
Strng str="0001,0002,0003-0006,0007,0008-0010";
要求 當字元串中存在除數字"-" "," 以外的其他字元時拋出異常
把字元串解析成
0001 0002 0003 0004 0005 0006 0007 0008 0009 0010
並放入String[] strs中
*/
import java.util.StringTokenizer;
import java.util.Vector;
public class Test{
public static void main(String args[]) {
String str="0001,0002,0003-0006,0007,0008-0010";
String strs[];
Vector<String> vec=new Vector(10);
StringTokenizer st = new StringTokenizer(str,"-,");
String temp=null;
int mid;
while (st.hasMoreTokens()) {
temp=st.nextToken();
try{
mid=Integer.parseInt(temp);
vec.add(temp);
}catch(Exception e){
e.printStackTrace();
System.exit(-1);
}
}
strs=new String[vec.size()];
for(int i=0;i<strs.length;i++){
strs[i]=vec.get(i);
}
for(int i=0;i<strs.length;i++){
System.out.println(strs[i]);
}
}
}
㈦ java解析json
你好:
把解析出來的requests重新new一個 JSONObject 對象,按原來的一樣解析
㈧ java解析規律字元串
用split("}") 先將這個string變成{01:9566 {02:W84394
然後用String里的方法,忽略第一個字元「{」 拿到後面的字元串
最後再用split拆一次
這樣就可以搞定
㈨ java代碼解析
圖發不上來,請看參考資料連接
初學的話只要了解值傳遞不會改變,引用傳遞會改變。
至於原理,有興趣的話可以了解一下。下面講得很詳細
講解:按值傳參與按引用傳參
----------------------------------------------------------------------------
類中包含方法,方法又分為方法聲明和方法實現,方法聲明中又有參數列表,參數根據調用後的效果不同,即是否改變參數的原始數值,又可以分為兩種:按值傳遞的參數與按引用傳遞的參數。
他們的區別是什麼呢?上面旺旺老師是說調用後的效果,我們看一個案例說明:比如有個女孩非常喜歡QQ,還給自己起了個浪漫的名字「輕舞飛揚」,飛揚小姐認識了一個網友「痞子蔡」(n年前非常火的一個網路小說《第一次親密接觸》的兩個主人公),他們聊的很投緣,有天飛揚小姐竟然把自己的電話號碼告訴了痞子蔡,有天痞子蔡竟然電話過來約飛揚小姐見面,考慮到網路的虛幻與現實人心的叵測,飛揚小姐面臨著艱難的選擇:是否去見網友?
那麼見網友就是個方法,方法的參數就是輕舞飛揚,如果痞子蔡是個披著羊皮的狼,那飛揚小姐就可能面臨危險,比如身上少些東西或者多些東西,就是說在方法體中有可能改變參數的原始數值。
現實中飛揚小姐只有兩種選擇,第一,為了愛情奮不顧身,上刀山下火海,再所不辭,但這有可能改變飛揚狀態,即數值;第二,委婉拒絕以求自保,但如果痞子蔡為人特別好,比如像旺旺老師這樣(嘔吐中),她也許會失去一段大好的姻緣。這里,如果科技足夠發達,我們可以完全給出第三種選擇,輕舞飛揚製作一個自己的替身,即把自己備份一份,然後把備份傳入方法體,這樣不論痞子蔡對她做了什麼都不會對她的源體發生影響,又能檢測痞子蔡對自己是否真心。
OK,這里我們就把飛揚小姐本人去見網友叫按引用傳遞,這樣在方法體中發生的改變在方法調用完對參數還有影響,而把讓她替身去叫按值傳遞,這樣方法調用完對參數原始數值沒有影響,發生改變的只是參數的備份,這份備份在方法調用完會自動消亡,也就是說飛揚的替身在見完網友自動消亡。最後可以簡單概括為一句話:按值傳遞參數數值不變,按引用傳遞參數數值改變。
我們上面剛學習了JAVA的數據類型,則有:值類型就是按值傳遞的,而引用類型是按引用傳遞的。下面看一個例子:
public class TestValueAndRef {
public static void main(String[] args) {
Student student = new Student();
student.stuAge = 10;
int a = 10;
int arr[] = new int[]{9, 5, 27};
System.out.println("初始值 a = " + a);
System.out.println("初始值 student.stuAge = " + student.stuAge);
System.out.println("初始值 arr[0] = " + arr[0]);
TestValueAndRef testValueAndRef = new TestValueAndRef();
testValueAndRef.change(a, student, arr);
System.out.println("調用函數後 a = " + a);
System.out.println("調用函數後 student.stuAge = "
+ student.stuAge);
System.out.println("調用函數後 arr[0] = " + arr[0]);
}
public void change(int pa, Student pstu, int[] parr) {
//方法體中改變值類型pa的值
pa = pa + 10;
//方法體中改變引用類型stu,parr的值
pstu.stuAge = pstu.stuAge + 10;
parr[0] = parr[0] + 10;
System.out.println("方法體改變後pa = " + pa);
System.out.println("方法體改變後student.stuAge = "
+ student.stuAge);
System.out.println("方法體改變後parr[0] = " + parr[0]);
}
}
運行結果:
--------------------------------------------------------------------------
初始值 a = 10
初始值 student.stuAge = 10
初始值 arr[0] = 9
方法體改變後pa = 20
方法體改變後student.stuAge = 20
方法體改變後parr[0] = 19
調用函數後 a = 10
調用函數後 student.stuAge = 20
調用函數後 arr[0] = 19
---------------------------------------------------------------------------------
我們看到,基本數據類型int變數a雖然在方法體中改變了數值,但方法調用完後其原始數值並沒有改變。而引用數據類型Student在方法體中改變年齡的數值,方法執行完其數值發生了改變,數組也是引用類型,所以其值也發生了改變。也就是說:按值傳遞參數數值不變,按引用傳遞參數數值改變。它們在內存中的變化如下所示:
根據上面講解的值類型和引用類型的知識,int類型變數在棧中分配一塊內存,而student與arr分配兩塊內存,當方法調用時,創建三個變數pa,pstu,parr這里相當於把棧中的數據全備份一份給這三個數值,則有:
大家看到,不管是按值傳遞還是按引用傳遞,都是把棧中的數據備份了一份給參數變數,只不過值類型備份的是具體的數值,而引用類型備份的是內存地址。
方法體執行完時:
我們看到,根據pstu與parr改變了堆中的具體數值,而pa改變的只是棧中的數值。最後方法調用結束,pstu,pa,parr三個變數消亡,則有:
根據這樣的內存變換,您知道按值傳遞與按引用傳遞的深層原因了嗎
㈩ JAVA解析
括弧應該是字元串的連接吧;
代碼不完整看不明白;
完整的一個方法定義:
修飾符 返回值 方法名 參數表 異常