昨天在做某企業的在線編程題的時候,雖然沒做出來,但是其中用到了一些看似十分普通卻不一定一下能想起來的方法函數,在此特地記錄一下。
涉及到的功能嘛 註釋裏都有比較清楚的寫。
有將一個字符串轉換成UTF-8編碼
16進制和2進制的相互轉換
將一個字符串裝進一個整型數組等等
下面挨個總結吧
1 將一個字符串bstr裝進整型數組num[ ]
String bstr="your string";
int [] num=new int[bstr.length()];
String [] arr =new String[bstr.length()];
for(int i=0;i<arr.length;i++){
arr[i]=bstr.substring(i,(i+1));
num[i]=Integer.parseInt(arr[i]);
}
2 將數組num_1中的所有元素拼接成字符串s_2
int [] num_1=new int[bstr.length()];
String s_2 = "";
for(int i=0;i<num_1.length;i++){
s_2 = s_2 + num_1[i];//拼接成字符串,最終放在變量s中
}
3 得到一個字符的UTF-8編碼
public static String getutf8FromString(String str) {
StringBuffer utfcode = new StringBuffer();
try {
for(byte bit : str.getBytes("utf-8")){
char hex = (char) (bit & 0xFF);
utfcode.append(Integer.toHexString(hex));
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return utfcode.toString();
}
4 將16進制數轉換爲2進制
public static String hexString2binaryString(String hexString)
{
if (hexString == null || hexString.length() % 2 != 0)
return null;
String bString = "", tmp;
for (int i = 0; i < hexString.length(); i++)
{
tmp = "0000"
+ Integer.toBinaryString(Integer.parseInt(hexString
.substring(i, i + 1), 16));
bString += tmp.substring(tmp.length() - 4);
}
return bString;
}
5 將2進制轉換爲16進制
public static String binaryString2hexString(String bString)
{
if (bString == null || bString.equals("") || bString.length() % 8 != 0)
return null;
StringBuffer tmp = new StringBuffer();
int iTmp = 0;
for (int i = 0; i < bString.length(); i += 4)
{
iTmp = 0;
for (int j = 0; j < 4; j++)
{
iTmp += Integer.parseInt(bString.substring(i + j, i + j + 1)) << (4 - j - 1);
}
tmp.append(Integer.toHexString(iTmp));
}
return tmp.toString();
}
6 將一個16進制的utf-8編碼轉換爲字符串
public static String hexStringToString(String s) {
if (s == null || s.equals("")) {
return null;
}
s = s.replace(" ", "");
byte[] baKeyword = new byte[s.length() / 2];
for (int i = 0; i < baKeyword.length; i++) {
try {
baKeyword[i] = (byte) (0xff & Integer.parseInt(
s.substring(i * 2, i * 2 + 2), 16));
} catch (Exception e) {
e.printStackTrace();
}
}
try {
s = new String(baKeyword, "gbk");
new String();
} catch (Exception e1) {
e1.printStackTrace();
}
return s;
}
7 將一個字符串反轉比如abcd–>dcba
public static String reverse7(String s) {
char[] str = s.toCharArray();
Stack<Character> stack = new Stack<Character>();
for (int i = 0; i < str.length; i++)
stack.push(str[i]);
String reversed = "";
for (int i = 0; i < str.length; i++)
reversed += stack.pop();
return reversed;
}
以上代碼都是一些短小精悍 筆試常用到工具,特此記錄。