Back to project page Cafe.
The source code is released under:
Apache License
If you think the Android project Cafe listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Copyright (C) 2012 Baidu.com Inc//from w w w . j av a 2 s .co m * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.baidu.cafe.utils; import java.util.ArrayList; /** * A String util class. * * @author luxiaoyu01@baidu.com * @date 2012-11-21 * @version * @todo */ public class Strings { public ArrayList<String> strings = null; public Strings(ArrayList<String> strings) { this.strings = strings; } public Strings grep(String str) { ArrayList<String> ret = new ArrayList<String>(); for (String line : strings) { if (line.contains(str)) { ret.add(line); } } return new Strings(ret); } public Strings getRow(String regularExpression, int rowNumber) throws ArrayIndexOutOfBoundsException { ArrayList<String> ret = new ArrayList<String>(); for (String line : strings) { String[] rows = line.trim().split(regularExpression); if (rows.length < rowNumber) { throw new ArrayIndexOutOfBoundsException(String.format( "rows.length(%s) < rowNumber(%s) line:%s", rows.length, rowNumber, line)); } ret.add(rows[rowNumber - 1]); } return new Strings(ret); } @Override public String toString() { StringBuilder sb = new StringBuilder(1024); for (String line : strings) { sb.append(line).append('\n'); } return sb.toString(); } /** * e.g. transfer "767E" to "\u767E" * * @param unicodeString * @return "" means failed */ public static String unicodeStringToUnicode(String unicodeString) { try { char[] unicode = new char[unicodeString.length() / 4]; for (int i = 0, j = 0; i < unicodeString.length(); i += 4, j++) { unicode[j] = (char) Integer.parseInt(unicodeString.substring(i, i + 4), 16); } return new String(unicode); } catch (Exception e) { e.printStackTrace(); } return ""; } public static int getRStringId(String packageName, String stringName) { Class<?> stringClass = getRClass(packageName, "string"); if (null == stringClass) { return -1; } try { return (Integer) stringClass.getDeclaredField(stringName) .get(stringClass.newInstance()); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } return -1; } /** * NOTICE: This method can not work at apk which is chaos. * * @param packageName * @param className * @return */ public static Class<?> getRClass(String packageName, String className) { try { Class<?>[] classes = Class.forName(packageName + ".R").getDeclaredClasses(); for (int i = 0; i < classes.length; i++) { if (classes[i].getName().indexOf("$" + className) != -1) { return classes[i]; } } } catch (SecurityException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return null; } }