-
2022-02-18 20:46:41
import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner a = new Scanner(System.in); String arr = a.next(); String back = ""; //arr.length == 字符串长度 for (int i = 1; i <= arr.length(); i++) { char d = arr.charAt(arr.length()-i); back= back.concat(String.valueOf(d)); //System.out.println(arr.length()); } System.out.println(back); } }
更多相关内容 -
java – 如何转置列表?
2021-03-17 15:38:40这被称为转置.以下代码段执行您需要的:import java.util.*;public class ListTranspose {public static void main(String[] args) {Object[][] data = {{ "Title","Data1","Data2","Data3" },{ "A",4 },{ "B",7 },}...这被称为转置.以下代码段执行您需要的:
import java.util.*;
public class ListTranspose {
public static void main(String[] args) {
Object[][] data = {
{ "Title","Data1","Data2","Data3" },{ "A",4 },{ "B",7 },};
List> table = new ArrayList>();
for (Object[] row : data) {
table.add(Arrays.asList(row));
}
System.out.println(table); // [[Title,Data3],// [A,4],// [B,7]]"
table = transpose(table);
System.out.println(table); // [[Title,B],// [Data1,3],// [Data2,5],// [Data3,7]]
}
static List> transpose(List> table) {
List> ret = new ArrayList>();
final int N = table.get(0).size();
for (int i = 0; i < N; i++) {
List col = new ArrayList();
for (List row : table) {
col.add(row.get(i));
}
ret.add(col);
}
return ret;
}
}
也可以看看
-
【Java】转置String的各种方法分析
2020-02-10 18:06:13这里有String的各种转置办法,Java语言描述。 肯定不能说面面俱到,但有效的方法基本齐备,还有各种方法之间的比较和优化,看过来。字符串倒置
说到这字符串倒置,其实还有些值得说道的,尽管不难。
C/C++有个reverse(),可以直接用,但我大Java并没有……
想到一种办法并不难,但你能想到几种有效的办法呢?
一起来看看吧!先做一下基本的定义,后面可以统一使用:
String string = "ADFGJINJOOKC"; int length = string.length(); char[] chars0 = string.toCharArray();
Strategy_1:倒转char[]
倒转char[]其实就是新生成一个char[],正向遍历原char[],把char数据逆向复制到新char[]中。
char[] chars1 = new char[length]; for (int i = 0; i < length; i++) { chars1[i] = chars0[length-i-1]; } System.out.println(new String(chars1));
Strategy_2:利用StringBuilder的reverse()
虽然String没有reverse(),但可以利用String对象生成StringBuilder对象,再reverse(),打印就直接调toString()了,方便简洁。
System.out.println(new StringBuilder(string).reverse());
Strategy_3:直接拼接
所谓直接拼接,其实就是new一个StringBuilder对象,倒着遍历char[],把char一个一个append()到StringBuilder对象上。
StringBuilder reverse3 = new StringBuilder(); for (int i = length-1; i >= 0; i--) { reverse3.append(chars0[i]); } System.out.println(reverse3);
看了解法二,说实话,此法大可不必……
Strategy_4:直接倒着打印
倒着遍历,直接打印。
由于需要大量的IO,所以慢。
也就初学者会真的这么用吧……for (int i = length-1; i >= 0; i--) { System.out.print(chars0[i]); } System.out.println();
Strategy_5:利用charAt(i)来拼接
String确实有charAt(i),但为什么摆着现成的随机访问index不用呢?何必何必,感觉还不如方法三。
StringBuilder reverse5 = new StringBuilder(); for (int i = length-1; i >= 0; i--) { reverse5.append(string.charAt(i)); } System.out.println(reverse5);
Strategy_6:使用栈来拼接
栈自然是可以的,LIFO,但单独拿出来而不利用数组的随机访问,大可不必。
何况是Java的java.util.Stack,继承自java.util.Vecter的一个类,一个被synchronized包裹的类,不必……
Stack<Character> stack = new Stack<>(); for (char c : chars0) { stack.push(c); } StringBuilder reverse6 = new StringBuilder(); while (!stack.isEmpty()) { reverse6.append(stack.pop()); } System.out.println(reverse6);
Strategy_7:两侧向中间交换
这个思想就是swap(),经典的交换算法。
char[] chars7 = chars0; for (int i = 0; i < length/2; i++) { char temp = chars7[i]; chars7[i] = chars7[length-i-1]; chars7[length-i-1] = temp; } System.out.println(new String(chars7));
Strategy_7の位运算优化
先写swap():
private static void swap(char a, char b) { if (a != b) { a ^= b; b ^= a; a ^= b; } }
再写具体的交换:(毕竟引用传递嘛,隐去了指针,不需使用&)
char[] chars8 = chars0; for (int i = 0; i < length/2; i++) { swap(chars8[i], chars8[length-i-1]); } System.out.println(new String(chars8));
完整Java代码
import java.util.Stack; public class StringReverseTest { private static void swap(char a, char b) { if (a != b) { a ^= b; b ^= a; a ^= b; } } public static void main(String[] args) { String string = "ADFGJINJOOKC"; int length = string.length(); char[] chars0 = string.toCharArray(); //方法一:倒转char[] char[] chars1 = new char[length]; for (int i = 0; i < length; i++) { chars1[i] = chars0[length-i-1]; } System.out.println(new String(chars1)); //方法二:利用StringBuilder的reverse() System.out.println(new StringBuilder(string).reverse()); //方法三:直接拼接 StringBuilder reverse3 = new StringBuilder(); for (int i = length-1; i >= 0; i--) { reverse3.append(chars0[i]); } System.out.println(reverse3); //方法四:直接倒着打印 for (int i = length-1; i >= 0; i--) { System.out.print(chars0[i]); } System.out.println(); //方法五:利用charAt(i)来拼接 StringBuilder reverse5 = new StringBuilder(); for (int i = length-1; i >= 0; i--) { reverse5.append(string.charAt(i)); } System.out.println(reverse5); //方法六:使用栈来拼接 Stack<Character> stack = new Stack<>(); for (char c : chars0) { stack.push(c); } StringBuilder reverse6 = new StringBuilder(); while (!stack.isEmpty()) { reverse6.append(stack.pop()); } System.out.println(reverse6); //方法七:两侧向中间交换 char[] chars7 = chars0; for (int i = 0; i < length/2; i++) { char temp = chars7[i]; chars7[i] = chars7[length-i-1]; chars7[length-i-1] = temp; } System.out.println(new String(chars7)); //swap() char[] chars8 = chars0; for (int i = 0; i < length/2; i++) { swap(chars8[i], chars8[length-i-1]); } System.out.println(new String(chars8)); } }
表表态
个人用着方法二,那个StringBuilder的reverse()比较顺手。
-
JNI实现字符串的转置
2020-04-14 23:05:34* @param param 待转置的字符串。 * @return 转置后的字符串。 */ public static native String reverseStr(String param); 生成一个native C方法声明 JNIEXPORT jstring JNICALL Java_____reverseStr(JNIEnv *....声明一个Java native方法
/** * @param param 待转置的字符串。 * @return 转置后的字符串。 */ public static native String reverseStr(String param);
生成一个native C方法声明
JNIEXPORT jstring JNICALL Java_____reverseStr(JNIEnv *, jclass, jstring);
实现native C方法
JNIEXPORT jstring JNICALL Java_____reverseStr(JNIEnv *env, jclass jc, jstring p) { jsize js = (*env)->GetStringLength(env, p); const jchar *jch = (*env)->GetStringChars(env, p, NULL); jsize j = 0, i = js - 1; jchar jch_tmp_1[js]; for (; j < js; ++j, --i) { jch_tmp_1[j] = jch[i]; } (*env)->ReleaseStringChars(env, p, jch); return (*env)->NewString(env, jch_tmp_1, js); }
此处重点放在本地方法的实现中。
测试
System.out.println(reverseStr("!anihC uoy evol I!国中你爱我"));
2020-04-14 22:42:55.257 1106-1106/I/System.out: 我爱你中国!I love you China!
-
java 小白 在控制台输入一个字符串,并将此字符串转置输出,列如:“故事“转置后变为“事故“.
2020-09-22 11:51:27System.out.println(“请输入字符串”); Scanner sc = new Scanner(System.in); String word = sc.nextLine(); char[] ch = word.toCharArray(); for (int i = ch.length - 1;i >= 0;i–) { System.out.println... -
字符串转置,string和stringBuffer转换
2022-03-30 20:47:03* 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001 * @author 何平生 * */ public class HW_11 { public static void main... -
JAVA字符串操作 (转)
2021-03-13 22:15:34JAVA字符串的方法1、length() 字符串的长度例:char chars[]={'a','b'.'c'};String s=new String(chars);int len=s.length();2、charAt() 截取一个字符例:char ch;ch="abc".charAt(1); 返回'b'3、getChars() 截取多... -
Java将字符串反转的几种方式
2022-04-11 11:44:34使用 StringBuilder 或 StringBuffer 的 reverse 方法(需要JDK1.8) 不考虑字符串中的字符是否是 Unicode 编码,自己实现。 使用递归方法 -
Java字符串的逆置
2021-10-14 10:33:56从键盘上输入一段字符串,逆置输出 比如从键盘上输入asdfgh 输出h g f d s a import java.util.Scanner; public class T33 { public static void main(String[] args) { String s=new String(); System.out.... -
Java数组和字符串:练习-矩阵转置
2020-05-31 18:32:54【课堂练习:矩阵转置】 已知一个二维数组A 表示一个矩阵,求AT。 其中,AT 表示矩阵的转置。...import java.util.Scanner; public class JuZhenZhuanZhi { public static void main(String[] args) { Scanner sc -
字符串反转输出(java)
2022-02-16 22:21:151.定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果 例如,键盘录入 abc,输出结果 cba public class Snippet { public static void main(String[] args) { Scanner sc = new ... -
字符串反转输出的方法
2021-03-09 09:09:51小疯之前遇到一个字符串反转输出的问题,然后找到几种方法。首先比较简单的情况就是一串字符反着输出,不用考虑其他,这种比较简单:1、把字符串变成数组,然后倒序输出:public void StringRevers(String str) {// ... -
Java中反转字符串我所知的五种方法
2016-06-28 01:44:54五种方法已经封装到类中,话不多说,直接上代码。...import java.util.Stack; public class Reverse { String str = new String(); public Reverse(String str) { this.str = str; } //用数组实现 public S -
如何反转倒置字符串?
2021-01-20 01:42:35在Java中,如何反转倒置字符串?下面的例子显示了如何将字符串参数反转倒置。程序使用StringBuffer(String string)方法缓冲输入String,反转缓冲区,然后使用toString()方法将缓冲区转换成String。package com.yiibai... -
【Java】字符串转换为数字:Integer的parseInt方法
2020-08-10 21:54:20Java官方文档[1]的解释 public static int parseInt(String s) throws NumberFormatException Parses the string argument as a signed decimal integer. The characters in the string must all be decimal ... -
判断一个字符串是否是对称字符串 例如“abc“不是对称字符串,“aba“、“abba“、“aaa“、“mnanm“是...
2022-01-22 18:53:40判断一个字符串是否是对称字符串 例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串。 1、第1个字符与最后一个字符去比较 2、第2个字符与倒数第2个字符去比较 3、第3个字符与倒数第3个字符去比较... -
String s1="1a2b3c"; String s2=s1.reverse();//即s2="c3b2a1
-
javascript 字符串 数字反转 字母大小写互换
2021-03-26 15:52:21// 符串abcd123ABCD456 怎么转换为 ABCD321abcd654// 数字要倒序 小写转大写, 大写转小写Array.prototype.reverse = function() {var tmp;for (var i = 0, j = this.length - 1; i < j; i++, j--) {tmp = this[i]... -
java 如何实现一个字符串的反转 (转自网络)
2017-11-19 11:21:421.通过jdk自带reverse的方法 public class InvertString { public static void main(String[] args) { String a="abcde"; StringBuilder b = new StringBuilder(a); System.out.print(b.rever -
java – 转置数组
2021-03-10 09:26:24以下是加载的数组的示例: Term 1, Definition 1 Term 2, Definition 2 Term 3, Definition 3 为了访问数组中的一个字符串,我使用以下代码: dataArray.get(rowNumber)[columnNumber] 但是,我需要能够生成所有术语的... -
字符串拆分,一行变多行
2021-11-26 11:13:40【问题】 I’d like to extract certain snippets from a MySQL column which are bounded in some unique way. Here is an example: I have the following ...逆分组计算 拆字符串成多记录 字符串拆分一行变多行 -
Mysql—字符串转其他类型(CAST和CONVERT函数)
2020-06-29 18:23:391、在mysql中,根据数字字符串排序,会按照和java字符串比较的模式进行(即第一位先比较,相等在比较下一位,以此类推),这样就会在有些比较的情况下,获取到不正确的结果,如:2和19,用数字的类型比较应该是19更... -
用递归调用实现字符串反转(java版)
2016-07-23 21:21:00写一个函数,输入int型,返回整数逆序后的字符串。如:输入123,返回“321”。 要求必须用递归,不能用全局变量,输入必须是一个参数,必须返回字符串。 1 public static String reverse(int arg) { 2 String ... -
Leetcode 题解 - 字符串
2021-02-19 20:01:48Leetcode 题解 - 字符串 1. 字符串循环移位包含 2. 字符串循环移位 3. 字符串中单词的翻转 4. 两个字符串包含的字符是否完全相同 5. 计算一组字符集合可以组成的回文字符串的最大长度 6. 字符串同构 7. 回文子字符... -
编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写...
2020-03-22 22:13:56import java.util.Scanner; public class 大小写转换2 { public static void main(String[] args) { ... // 编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变... -
Matlab字符串 字符串数组 数据类型转换
2019-11-13 13:47:29字符串 https://ww2.mathworks.cn/help/matlab/characters-and-strings.html 创建字符向量 通过将字符序列括在单引号中来创建一个字符向量。 chr = 'Hello, world' chr = 'Hello, world' 字符向量为 char 类型的...